在javascript中为Array Elements添加Click事件

时间:2013-04-01 07:47:03

标签: javascript jquery arrays

我是javascript的新手 我有一个多维数组,里面有'li'。我想为我的多维数组中的所有li添加click事件监听器 我的数组是这样的

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 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

或者您可以使用jquery的地图功能

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

我知道它迟到了。但是改进起步很晚。 此致

答案 2 :(得分:0)

试试这个......让你的newItems是元素“li”

的MultiDimensional变量
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);
  }
}

答案 3 :(得分: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'
        });
    });
}