如何获取按钮上的元素的id单击mootools(1.1)

时间:2010-11-14 23:36:15

标签: javascript mootools click element

我有一堆非预先确定的ID链接如下:

<a href="#" class="remove_pid" id="pid_123">Remove 123</a>
<a href="#" class="remove_pid" id="pid_234">Remove 234</a>
<a href="#" class="remove_pid" id="pid_567">Remove 567</a>
<a href="#" class="remove_pid" id="pid_890">Remove 890</a>

我有一个像这样的事件处理程序:

$$('.remove_pid').addEvents({
   'click': removePid
});

调用此函数

function removePid(event)
{
    alert('yo what is my element id???');
}

所以问题是如何在函数removePid()中获取元素id?

更新

@Aishwar,event.target.id似乎适用于以下情况,但不是特别适用于我的情况

<a href="#" class="remove_pid"><img src="/123.jpg" id="pid_123"></a>

更新2:

我认为这是无关紧要的,但不是文字“删除123”我实际上有一个像这样的图像:

<a href="#" class="remove_pid" id="pid_123"><img src="/123.jpg"></a>

所以,感谢@Dimitra指出它。我对投票感到惊讶,但很高兴地说我可能应该得到它。

3 个答案:

答案 0 :(得分:1)

我没有使用mootools的经验。但我猜你可以在removePid

中沿着这些方向做点什么
var element = event.srcElement || event.target
element.id // is the element's id, element is the DOM element itself

答案 1 :(得分:1)

根据FINAL更新中发布的标记:

http://www.jsfiddle.net/dimitar/Sr8LC/

$$('.remove_pid').addEvents({
    'click': function(e) {
        new Event(e).stop();
        var id = this.getProperty("id");
        alert(id);
        alert(id.replace("pid_", ""));
    }
});

使用命名函数并保留事件:

var removeProduct = function(e) {
    new Event(e).stop();
    var id = this.getProperty("id");
    alert(id);
    alert(id.replace("pid_", ""));
};

$$('a.remove_pid').each(function(el) {
    el.addEvents({
        'click': removeProduct.bind(el)
    });
});

在两个函数中,this将引用触发元素(锚点),因此您可以读取它的属性等。this.getFirst()将引用图像(如果需要)。

答案 2 :(得分:0)

想想我找到了它:

function removePid(event)
{
    //alert('yo what is my element id???');
    $(event.target).getParent('a').getProperty('id');
}

这适用于FF 3.6