【问题标题】:jQuery - iteration + addClass on array elementsjQuery - 数组元素上的迭代 + addClass
【发布时间】:2012-08-16 18:14:15
【问题描述】:

我有:

    $('#a1').addClass('play');
    $('#a3').addClass('play');
    $('#a5').addClass('play');  
    $('#a16').addClass('play');
    $('#b3').addClass('play');

所以决定最好使用类似的东西:

var doString="m7,m7,a1,b2,c3,p16,o15,n14,d8,e7,g5,i4,l4,n6,o8,n10,m11,k12,i11,i13,k15,l16,f9";
var strArray1 = doString.split(",");
console.log(doString);
console.log(strArray1);

$.each(strArray1, function(i, elem) { 
    console.log(elem); 
    $('#'+elem+').addClass('play'); // not working
});

但无法确定将类添加到每个元素的正确参数。

我该怎么做?

【问题讨论】:

  • 对不起,我编辑了我原来的问题,因为我试图自己解决它并复制了另一个非工作副本。意识到我的错误并进行了编辑,但仍然无法正常工作。感谢您的帮助。

标签: jquery arrays loops addclass


【解决方案1】:
$.each(strArray1, function(i, val) { 

    // i => index(0,1,..)
    // val => m7,m7,a1,...

    $( '#' + val ).addClass('play'); 
});

$.each(strArray1, function() { 

    // this[0] => m7,m7,a1,...

    $( '#' + this[0] ).addClass('play'); 
});

编辑后(您的代码)

$.each(strArray1, function(i, elem) { 
    console.log(elem); 
    $('#'+elem+').addClass('play'); // not working
});

$('#'+elem+') 应该是 $('#'+ elem )

在这里,您必须从选择器中删除尾随的+',然后它就完美了。

【讨论】:

  • 一个简单的for 循环将减少调用$.each 的开销
  • @MrOBrian 可能是,但这有助于 OP 找到错误和正确的路径。
猜你喜欢
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 2018-02-23
  • 2021-12-04
  • 2013-12-27
  • 1970-01-01
  • 2019-02-04
  • 2016-03-23
相关资源
最近更新 更多