Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 请解释一下语法_Javascript_Jquery - Fatal编程技术网

Javascript 请解释一下语法

Javascript 请解释一下语法,javascript,jquery,Javascript,Jquery,我试图理解下面两行不同的代码。我的javascript很弱,试图用jquery(hmmmm)来改进它 我试图使用的是drag sort插件,具体来说,我使用的是这个示例 我现在已经到了使用这种方法的阶段 var serialStr = ""; $("#list1 li").each(function(i, elm) { serialStr = (i > 0 ? "|" : "") + $(elm).children().html(); }); 该示例具有以下内容 var se

我试图理解下面两行不同的代码。我的javascript很弱,试图用jquery(hmmmm)来改进它

我试图使用的是drag sort插件,具体来说,我使用的是这个示例

我现在已经到了使用这种方法的阶段

var serialStr = "";
$("#list1 li").each(function(i, elm) { 
    serialStr = (i > 0 ? "|" : "") + $(elm).children().html(); 
});
该示例具有以下内容

var serialStr = new Array();
$("#list1 li").each(function(i, elm) { 
    serialStr[] = = $(elm).attr("itemId");  
}); 
我采用第一种方法的原因是,我正在测试所有内容,以及它们在HTML示例中的内容。我现在试图保存状态,所以我转到php示例

所以我的问题是,在这里不同的行中,主要的区别是什么?我对第一行的理解是,它选择列表1上li标记内部的每个子元素,我实际上没有得到(I>0?”|“:”)位

根据我的理解,在第二个snipplet中,它使用列表1中的itemID受让人选择每个属性

serialStr[]=(i>0?”|“:”)+$(elm).children().html()
是if子句的缩写。其作用与:

if(i > 0) {
 serialStr[] = "|" +$(elm).children().html();
} else {
 serialStr[] = "" +$(elm).children().html();
}
表达式
(i>0?|“:”)
使用to不在第一个值前面加
|
,而只在后面的每个值前面加前缀


但是表达式
serialStr[]=$(elm).attr(“itemId”)
的语法无效。Javascript不像PHP那样有推送操作符
[]
。请改用。

我认为您粘贴的代码与这两个代码片段都不完全一样。第一种方法似乎希望将字符串连接在一起,但缺少能够实现这一点的
+=
;第二种方法是创建一个列表,可能是在之后将()连接到一起,但是使用了一些JavaScript中不存在的奇怪的语法

我没有真正得到(I>0?|“:”)位

第一次循环时,选择
,随后选择
“|”
。这是制作字符串的传统方法,其中每个元素由一个字符分隔

但通常是一种更简洁的方法,您可以使用在返回新数组的数组上运行函数,而不必手动创建一个数组:

var itemIds= $('#list1 li').map(function() {
    return $(this).attr('itemId');
}).get().join('|');
(或
$(this).html()
如果您真的想获取html内容,这听起来有点可疑。)


map()
是一个jQuery函数,但是ECMAScript第五版在普通数组上也有一个
map()
方法

@Reigel:它只是一个三元运算符,因此有三个操作数。官方术语是条件运算符。谢谢,我不知道它的名字:P