使用Mootools css选择器获取具有相同ID的相同元素的元素

时间:2014-02-27 13:44:20

标签: javascript mootools

我有一个表在td标签中有几个具有相同id的链接,我可以分别得到链接的内部html。我想知道

  1. 为什么我无法添加具有与 $$('#update_room_link')相同ID的所有相同元素的事件,但类选择器为 $$('。update_room_link')有效
  2. 2.如何获取各个链接的 innerhtml 。点击链接时,相同的ID但不同的innerhtml,继承人jsfiddle
  3. 这就是我想要的 -

    <table>
        <tr>
            <td> <a href="javascript:void(0)" class="update_room_link">Edit</a>
    
            </td>
            <td> <a href="javascript:void(0)" class="update_room_link">Delete</a>
    
            </td>
            <td> <a href="javascript:void(0)" class="update_room_link">Add</a>
    
            </td>
        </tr>
    </table>
    

    javascript尝试

    $$('#update_room_link').addEvent('click', function () {
        alert();// get innerHtml of Edit,Delete or Add as clicked
    
    })
    

    更新的问题
    我在表行中有一个html SELECT,这行有很多表数据。我想得到一个表数据的值/ innerhtml,它的id设置(并在SAME行中)。或者我怎么能得到一个直接的盛大 - 孩子的一个孩子......孩子是否可能

    <tr> 
    <td id="id">100</td> 
    <td>Australi</td> 
    <td>BAT</td> 
    <td>2014-02-23</td> 
    <td>pending</td> 
    </tr>
    

    enter image description here

    我想要SELECTED选项名称的innerhtml。所有选择都有相同的类名。

2 个答案:

答案 0 :(得分:2)

ID必须在html元素中是唯一的,这就是为什么你不能在a标签上使用相同的ID,因此$$('#update_room_link')适用于所有元素。

您可以使用该类,并可以像这样获得内部HTML

$$('.update_room_link').addEvent('click', function () {
    alert(this.innerHTML); //here you will get the respective inner HTML
})

DEMO

请参阅ID shold be unique

如果你想使用id那么它应该是唯一的,在这种情况下你必须独立地附加每个函数,这不是好习惯,比如

$$('#update_room_link1').addEvent('click', function () {....
$$('#update_room_link2').addEvent('click', function () {....

答案 1 :(得分:1)

我已经接受了答案之后添加了这个答案,只是为了完成一点。

如果您想将事件添加到一个元素 ID ,您可以使用

$('update_room_link').addEvent('click', function () {

它也适用于

$$('#update_room_link').addEvent('click', function () {

要向多个元素添加事件,按CLASS ,您可以使用

$$('.update_room_link').addEvent('click', function () {

获取HTML MooTools推荐的方法是

element.get('html'); 

但也适用于

element.innerHTML

因为mootools使用原生元素