小编Cho*_*hoy的帖子

传入数字,Number.prototype.format

我已经看到在几个站点上引用了这个格式函数,但它们都没有一个如何将数字传入函数的明确示例.

我试过'12345'.format('0.00'),我相信它应该如何写,但它给了我一个错误,该对象不支持属性或方法.我也试过Number('12345').format('0.00'); var num ='12345'// num.format('0.00'); 格式('0.00','12345')甚至尝试使用数字而不是字符串12345.format(0.00).我错过了一些非常明显的东西吗?

包含的功能副本供参考,因此您无需访问该站点(填写所有缺失的部分).

/**
 * I ? Google
 */
String.prototype.stripNonNumeric = function() {
    var str = this + '';
    var rgx = /^\d|\.|-$/;
    var out = '';
    for( var i = 0; i < str.length; i++ ) {
        if( rgx.test( str.charAt(i) ) ) {
            if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) ||
            ( str.charAt(i) == '-' && out.length != 0 ) ) ) {
                out += str.charAt(i); …
Run Code Online (Sandbox Code Playgroud)

javascript formatting prototype numbers

5
推荐指数
1
解决办法
4358
查看次数

为ServerXMLHTTP请求设置超时

有没有人知道如何设置ServerXMLHTTP请求超时时的默认操作?我正在使用setTimeouts()根据MSDN站点设置超时选项.

理想情况下,我想从头开始再次初始化请求,或者如果超时则刷新页面.

我正在使用经典的asp和jscript.

这是我的要求:

function serverXmlHttp(url) {
    var serverXmlHttp;
    serverXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0");

    // set time out options
    serverXmlHttp.setTimeouts(15000,15000,15000,15000);

    // does not work
    // serverXmlHttp.ontimeout(Response.Write("page has timed out"));

    serverXmlHttp.open("GET", url, false);
    serverXmlHttp.send();

    if (serverXmlHttp.readyState == 4) {
        return serverXmlHttp.responseText;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript timeout serverxmlhttp asp-classic

5
推荐指数
2
解决办法
2万
查看次数

将document.body.className设置为变量

这是我的代码,用于在用户单击链接时切换我的body标记的类.

function switchBodyColor() {
    if (document.body.className == 'blue')
        document.body.className = 'red';
    else if (document.body.className == 'red')
        document.body.className = 'green';
    else if (document.body.className == 'green')
        document.body.className = 'blue';
}
Run Code Online (Sandbox Code Playgroud)

我想将结果颜色设置为一个名为bodyColor的变量.因此,如果body类是"蓝色"并且用户单击并将其切换为"red",我想将红色存储为变量(bodyColor)以供稍后用于其他用途.或者更好的是,将document.body.className设置为变量本身,然后使用该变量切换switchBodyColor()函数中的document.body.className.

我想到了以下几点:

    if (document.body.className == 'blue')
        document.body.className = 'red',
        var bodyColor = red;
Run Code Online (Sandbox Code Playgroud)

要么

var bodyColor = document.body.className
Run Code Online (Sandbox Code Playgroud)

将body类设置为变量.

当然,这两种选择都不起作用.^ _ ^; 我怎样才能完成上述任何一项(或两项)?

javascript variables

4
推荐指数
2
解决办法
2万
查看次数

解析javascript数组中的数字

嗨我有一串用逗号分隔的数字,"100,200,300,400,500",我正在使用javascript split函数分割成一个数组:

var data = [];
data = dataString.split(",");
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用parseFloat解析数组的值,然后将它们存储回数组中.然后,我想将数组中的数字相加,并将其存储为另一个变量"dataSum".

我有以下代码,但我不能让它工作:

var dataSum = "";

for (var i=0; i < data.length; i++) {
    parseFloat(data[i]);
    dataSum += data[i];
}
Run Code Online (Sandbox Code Playgroud)

因此,在所有这些结束时,我应该能够分别访问任何解析的数字data [0],data [1]等...并且具有dataSum的总数.我究竟做错了什么?

javascript arrays parsefloat

3
推荐指数
2
解决办法
1万
查看次数

无法使用innerHTML输出完整的数字列表

以下是用于创建从1到10的连续数字列表的代码.我想使用innerHTML获取此列表并在div"pagination"中输出.但是,当我执行脚本时,输出的唯一内容是数字10.当我使用document.write覆盖页面时,它会输出整个列表.有人能告诉我我做错了什么吗?谢谢.

function generateNumbers() {
    var numbers = new Array();

    // start generating numbers
    for(var i = 1; i <= 10; i+= 1) {
        numbers.push( i );
    }

    // print numbers out.
    for(var i = 0; i < numbers.length; i++) {
        document.getElementById("pagination").innerHTML = numbers[i] + "<br>";
    }
}
Run Code Online (Sandbox Code Playgroud)

在HTML中:

<div id="pagination"></div>
Run Code Online (Sandbox Code Playgroud)

javascript arrays innerhtml sequential-number

2
推荐指数
1
解决办法
1214
查看次数

防止初始数组排序

我有一个数组,当我最终在文档中输出数组时,对象的顺序很重要.但是,我也在函数中对数组进行排序以找到最高值.问题是我运行函数后找到最高值,我无法得到数组的原始排序顺序.

// html document
var data = [75,300,150,500,200];

createGraph(data);

// js document

function createGraph(data) {

    var maxRange = getDataRange(data);

    // simpleEncode() = google encoding function for graph
    var dataSet = simpleEncode(data,maxRange);

}

function getDataRange(dataArray) {
    var num = dataArray.sort(sortNumber);
    return num[0];
}
Run Code Online (Sandbox Code Playgroud)

我还尝试将数据设置为dataA和dataB,并使用getDataRange函数中的dataB和simpleEncode函数中的dataA.无论哪种方式,数据总是最终从最高到最低排序.

javascript arrays sorting

2
推荐指数
2
解决办法
1133
查看次数

基于传递参数覆盖Javascript函数

是否可以根据您传入的参数数量覆盖函数?例如:

function abc(name) {
    document.write ('My name is' + name);
}

function abc(name,friend) {
    document.write ('My name is' + name + 'and my best friend\'s name is' + friend);
}
Run Code Online (Sandbox Code Playgroud)

所以在HTML如果我只是叫ABC(乔治),将使用该函数的第一个版本,但如果我叫ABC(乔治,约翰),它会使用第二个版本.

可能还有其他方法来完成我使用的示例,但我只是想知道这个概念在javascript中是否合理.

javascript parameters overriding function

2
推荐指数
1
解决办法
6049
查看次数

结合JSON数组

我有3个json数组,每个数组都以相同的格式列出信息:

Array:
    ID:
    NAME:
    DATA:

    ID:
    NAME:
    DATA:

    etc...
Run Code Online (Sandbox Code Playgroud)

我的目标是将所有3个数组合并为一个数组,并通过将3个数组传递给函数来按NAME排序和显示.

我尝试过的功能是:

Javascript电话:

// to save time I'm just passing the name of the array, I've tried passing
// the full array name as json[0]['DATA'][array_1][0]['NAME'] as well.

combineNames(['array_1','array_2']);
Run Code Online (Sandbox Code Playgroud)

功能:

function combineNames(names) {

    var allNames = []

    for (i=0;i<names.length;i++) {
        for (j=0;j<json[0]['DATA'][names[i]].length;j++) {
            allNames.push(json[0]['DATA'][names[i]][j]['NAME']);
        }
    }

    return allNames.sort();
}
Run Code Online (Sandbox Code Playgroud)

上面给出了NAME为null或未定义的错误.

我也尝试使用array.concat函数,当我对其进行硬编码时它会起作用:

var names = [];
var allNames = [];

var names = names.concat(json[0]['DATA']['array_1'],json[0]['DATA']['array_2']);

for (i=0;i<names.length;i++) {
    allNames.push(names[i]['NAME']);
}

return allNames.sort();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将数组传递给函数(如果可能的话,我想传递数组名称部分而不是整个json [0] …

javascript json

2
推荐指数
1
解决办法
1万
查看次数

动态创建DOM对象并给出类

我正在使用Javascript为下拉菜单动态创建选项元素,并想知道如何向它们添加类,以便我可以使用CSS设置它们的样式.

我有以下代码:

for (var i=0;i<portfolio.length-1;i++) {
    portfolioSelect.options[portfolioSelect.options.length] =
        new Option(portfolio[i]);
}
Run Code Online (Sandbox Code Playgroud)

其中,投资组合是由外部来源填充的阵列.

插入选项的HTML:

<select id="portfolio" name="portfolio">
    <option selected="selected" value="Select One">Select One</option>
</select>
Run Code Online (Sandbox Code Playgroud)

javascript css

2
推荐指数
1
解决办法
2262
查看次数

在VBScript中创建多维关联数组

是否可以在VBScript中创建多维关联数组?

我正在尝试在VBScript中重新创建以下JScript代码:

names["teachers"] = ["Helen","Judy","Carol"];
names["students"] = ["George","John","Katie"];

For (var i=0; i<names["teachers"].length; i++) {

     Response.Write(names["teachers"][i]);

}
Run Code Online (Sandbox Code Playgroud)

我试过的VBScript:

dim names

SET names = CreateObject("Scripting.Dictionary")

names.Add "teachers", Array("Helen","Judy","Carol")
names.Add "students", Array("George","John","Katie")
Run Code Online (Sandbox Code Playgroud)

创建对象似乎没有错误,但我无法弄清楚如何在VBScript中循环遍历数组.

vbscript associative-array multidimensional-array

2
推荐指数
1
解决办法
1万
查看次数

在PHP中遍历XML

我有以下XML代码,我正在尝试解析,但我确定如何遍历PHP中的一些数据:

  <entry>
    <id>http://data.treasury.gov:8001/Feed.svc/DailyTreasuryYieldCurveRateData(5360)</id>
    <title type="text"></title>
    <updated>2011-06-09T20:15:18Z</updated>
    <author>
      <name />
    </author>
    <link rel="edit" title="DailyTreasuryYieldCurveRateDatum" href="DailyTreasuryYieldCurveRateData(5360)" />
    <category term="TreasuryDataWarehouseModel.DailyTreasuryYieldCurveRateDatum" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
    <content type="application/xml">
      <m:properties>
        <d:Id m:type="Edm.Int32">5360</d:Id>
        <d:NEW_DATE m:type="Edm.DateTime">2011-06-01T00:00:00</d:NEW_DATE>
        <d:BC_1MONTH m:type="Edm.Double">0.04</d:BC_1MONTH>
        <d:BC_3MONTH m:type="Edm.Double">0.05</d:BC_3MONTH>
        <d:BC_6MONTH m:type="Edm.Double">0.11</d:BC_6MONTH>
        <d:BC_1YEAR m:type="Edm.Double">0.18</d:BC_1YEAR>
        <d:BC_2YEAR m:type="Edm.Double">0.44</d:BC_2YEAR>
        <d:BC_3YEAR m:type="Edm.Double">0.74</d:BC_3YEAR>
        <d:BC_5YEAR m:type="Edm.Double">1.6</d:BC_5YEAR>
        <d:BC_7YEAR m:type="Edm.Double">2.28</d:BC_7YEAR>
        <d:BC_10YEAR m:type="Edm.Double">2.96</d:BC_10YEAR>
        <d:BC_20YEAR m:type="Edm.Double">3.83</d:BC_20YEAR>
        <d:BC_30YEAR m:type="Edm.Double">4.15</d:BC_30YEAR>
        <d:BC_30YEARDISPLAY m:type="Edm.Double">4.15</d:BC_30YEARDISPLAY>
      </m:properties>
    </content>
  </entry>
Run Code Online (Sandbox Code Playgroud)

我只能做到这一点

entry->content
Run Code Online (Sandbox Code Playgroud)

因为以下引发冒号的错误:

entry->content->m:properties 
Run Code Online (Sandbox Code Playgroud)

如何访问内容,例如d:NEW_DATE?

php xml traversal

2
推荐指数
1
解决办法
3314
查看次数

如何将函数的结果设置为全局变量

我确信这很简单,我正在绘制一个巨大的空白,但是如何将函数的结果设置为全局变量?

例如,我想将数组"colors"中的第一个"颜色"设置为全局变量"color"(我知道这个例子没有多大实际意义,但它只是为了说明我的问题):

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    var color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}
Run Code Online (Sandbox Code Playgroud)

javascript global-variables

0
推荐指数
1
解决办法
1万
查看次数