3

这是我正在测试的 jsfiddle http://jsfiddle.net/5hhRF/

有数字 1 2 1 2 .... 当您单击最后一个数字“2”时,它不会发出警报。

我是否错过了该案例的一些代码?

我在这里再次复制相同的代码。

<span class="open-option" id="option1" >1</span>
<span class="open-option" id="option2" >2</span>

<span id="open-option" class="option1" >1</span>
<span id="open-option" class="option2" >2</span>​
    $(".open-option").click(function(){                    
       var myID=$(this).attr('id');
       警报(我的 ID);
    });

    $("#open-option").click(function(){                    
       var myClass=$(this).attr('class');
       警报(我的班级);
    });


                        ​</pre>
4

4 回答 4

3

您不能将相同的 id 分配给多个元素。

http://htmlhelp.com/reference/html40/attrs.html

ID 属性唯一地标识文档中的元素。没有两个元素在单个文档中具有相同的 ID 值。

于 2012-04-06T06:06:38.473 回答
3

click事件仅绑定到具有给定 id 的第一个元素。

页面中的 ID 必须是唯一的。

于 2012-04-06T06:07:46.280 回答
1

jQuery id selector返回一个数组,但仅包含DOM id 中的第一个元素。所以在你的代码中click handler is being applied to 1st DOM elements only

您可以使用包含选择器

$("span[id*='open-option']").click(function(){                    
   var myClass=$(this).attr('class');
   alert(myClass);
});

小提琴:http: //jsfiddle.net/5hhRF/4/

于 2012-04-06T06:10:08.520 回答
0

恐怕元素 ID 必须是唯一的,就像这里所说的那样。否则,您的代码将无法正常工作。

于 2012-04-06T06:07:10.300 回答