2

我是 javascript 新手,我有一个多维数组,其中包含“li”。我想为我的多维数组中的所有 li 添加单击事件侦听器我的数组是这样的

newItems = [ 
  [li.pL14, li, li.pR15], 
  [li.pL14, li, li.pR15], 
  [li.pL14, li, li.pL14], 
  [li, li.pR15, li.description], 
  [li.pL14, li, li.pR15], 
  [li.pL14, li]
]
4

4 回答 4

3

假设它newItems包含节点数组,而不是字符串。

变体 #1。简单for loop

for (var i = newItems.length; i--;) for (var j = newItems[i].length; j--;)
$(newItems[i][j]).click(function() {
    // click
});

演示:http: //jsfiddle.net/ymuHR/

变体 #2*。展平数组并转换为 jQuery 集合:

$([].concat.apply([], newItems)).click(function() {
    alert(this.id);
});

演示:http: //jsfiddle.net/ymuHR/1/

于 2013-04-01T07:55:28.677 回答
1

或者你可以使用jquery的map函数

$.map( newItems , function( val, i ) {
            $('#'+val).click(function(){
                //do something.
            });
        });

我知道为时已晚。但它是新的改进迟到了。问候

于 2013-09-30T10:52:06.803 回答
0

试试这个...让你的 newItems 是元素“li”的多维变量

for(var i=0;i<newItems.length;i++)
{
  for(var j=0;j<newItems[i].length;j++)
  {
    newItems[i][j].addEventListener('click',function(){
      // Your On Click code

    },false);
  }
}
于 2013-04-01T07:55:12.463 回答
0

HTML

<div id="abc1"><a href="#">linl 01</a></div>
<div id="abc2"><a href="#">linl 02</a></div>
<div id="abc3"><a href="#">linl 02</a></div>
<div id="abc4"><a href="#">linl 02</a></div>

jQuery

var ids = ["#abc1", "#abc2", "#abc3", "#abc4"];
for(var i=0;i<ids.length;i++) {
    $(ids[i]).click(function(){
        $(this).find("a").css({
            'font-weight':'bold'
        });
    });
}
于 2013-09-01T15:44:00.527 回答