我有一堆非预先确定的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指出它。我对投票感到惊讶,但很高兴地说我可能应该得到它。
答案 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