小编raj*_*eev的帖子

使用来自 jquery .ajax 的 dataFilter 和 json 数据

如何从来自 ajax 调用的 JSON 数据生成修改后的有效 JSON 数据字符串。有必要使用 dataFilter 来做到这一点。

来自ajax调用的retData(返回的数据)是:

{"8":"vacation","7":"birthday","5":"summer","4":"2013","3":"2014","6":"winter","2":"2015","1":"2016"}
Run Code Online (Sandbox Code Playgroud)

JS代码:

'dataFilter': function (retData, json) {
    console.log('retData='+retData);
    data = [];
    $.map(retData, function (value,key) {
        console.log('indx=i'+key+', value='+value);
        node = {
            'id' : 'i'+key,
            'text' : value,
            'icon' : '/',
            'data' : value,     //'metadata' :  value,
            'state' : {'opened' : false},
            'children' : true
        }
        data.push( node );
    });
    console.log('final-data='+data);
    return data;
    //return JSON.stringify(data);
}
Run Code Online (Sandbox Code Playgroud)

但相反,我在浏览器控制台中收到错误:似乎 $.map 在“dataFilter”中运行时出现问题,它在“success”调用中运行良好(但插件严格希望在“dataFilter”中完成处理)

TypeError: invalid 'in' operand a
https://www.localhost.com/jscript/jquery/jquery-2.2.0.min.js
Line 2
Run Code Online (Sandbox Code Playgroud)

ajax jquery json

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

如何使这个perl更快地循环

我在脚本中做了一些时间戳打印,这篇文章花了太长时间:差不多5分钟就完成了...... !!!

fyi,strArr数组包含大约1500个字符串元素.(这个循环多次运行)

文件tmp_FH_SR是27Mb和300,000行数据.文件tmp_FH_RL为13 Mb,包含大约150,000行数据.

我更改了变量名称以保护实际名称......

在第一个while循环中,基于$ str仅在文件中找到一次的事实,我从匹配记录中获取另一个字段.我使用此字段在另一个文件中搜索此字段的出现次数.根据该输出,我将$ str添加到一个数组.

my $tmp_srt;
foreach my $str (@strArr)
{
    my $tmp1;
    my $count=0;
    seek $tmp_FH_SR,0,0;
    while (<$tmp_FH_SR>)
    {
        my $line=$_;chomp($line);
        if ($line=~ m/\"$str\"/)
        {
            $count++;
            if ($count == 1)
            {
                my @tmp_line_ar = split(/\,/,$line);
                $tmp_str=$tmp_line_ar[10];
            }
        }
    }
    if ($count == 1)
    {
        my $k;
        seek $tmp_FH_RL,0,0;
        while (<$tmp_FH_RL>)
        {
            my $line=$_;chomp($line);
            if ($line=~m/\"$tmp_str\"/) {$k++;}
        }
        if($k == 1){push(@another_str_arr,$str);}
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它更快?一次读取阵列中的27mb和13mb文件并工作?我想避免这种情况,因为许多其他进程正在运行它的主机上运行.

TY.

perl while-loop

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

JQuery:如何获取以相同ID字符开头的多个元素的特定属性类型计数?

HTML:

....<span id="elem_id0" style="....color:blue...">some text</span>
....<span id="elem_id1" style="....color:blue...">some text</span>
....<span id="elem_id2" style="....color:black...">some different text</span>
....<span id="elem_id3" style="....color:blue...">some text</span>
...
Run Code Online (Sandbox Code Playgroud)

我正在使用javascript动态更改颜色.根据这一切,我想要计算所有元素,其id以elem_id开头",颜色为"蓝色".

我正在努力追随.(尝试了很多变化).总计正确,但蓝计数总是来0.不知道为什么....

var blues = $('#[id^="elem_id"][font-color="blue"]').length;            
var total = $('#[id^="elem_id"]').length;
Run Code Online (Sandbox Code Playgroud)

Pl建议.

****更新*******

删除了以前的更新.失败是由于添加attr时的拼写错误(在颜色之前添加了空格).匹配时失败(这里没有空格......).

我现在纠正了我的错误.

对所有人来说.

html javascript jquery

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

数字比较给出错误的结果(javascript)

以下代码始终给出错误结果.我想我正在比较两个数字变量.那不是这样吗?

var request; var getfilesize; var maxdisplaysize=2097152;
    request = $.ajax({
    type: "HEAD",
    url: getfile,
    success: function () {
      getfilesize = request.getResponseHeader("Content-Length");
      console.log("Size is" + getfilesize+'xxx');
    }
    });
    parseInt( getfilesize, 10 );
if ( getfilesize < maxdisplaysize ) {
    $("#displayfile").load(getfile);
    console.log('file size less then 2mb 2097152bytes');
} else {
    $("#displayfile").append('<p>sorry large file<p>');
}
Run Code Online (Sandbox Code Playgroud)

Pl建议为什么if条件总是被评估为假?

javascript

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

标签 统计

javascript ×2

jquery ×2

ajax ×1

html ×1

json ×1

perl ×1

while-loop ×1