我有html如下:
<div onclick=" callJavascript()">
<span id="abc"> abc </span>
<span id="def"> def </span>
<span id="ghi"> ghi </span>
</div>
当我点击&#39; abc&#39;或者&#39; ghi&#39;,function callJavascript()
内的任何地方都有,以找出我点击的跨区ID?
答案 0 :(得分:7)
是的,有:
对于非IE浏览器:
function callJavascript ( e ) {
alert(e.target); // the DOMElement object
alert(e.target.id); // the object's id
}
对于IE:
function callJavascript ( e ) {
alert(e.srcElement); // the DOMElement object
alert(e.srcElement.id); // the object's id
}
你必须适应你的html:
<div onclick=" callJavascript(e)"> // replace "e" by "event" in IE.
<span id="abc"> abc </span>
<span id="def"> def </span>
<span id="ghi"> ghi </span>
</div>
如果您想要更完整的参考,请点击此处:http://www.quirksmode.org/js/events_properties.html
哇!我可以提一下,为了更准确,你的事件监听器不应该在div元素上,而是可以由span元素本身触发。目标或srcElement是事件发生的目标。这不是问题的一部分,但值得一提:我通常更喜欢在html代码中避免事件附件,因为它会导致范围问题并迫使您(如在您的情况下)手动传递事件参数。
答案 1 :(得分:3)
您必须将事件参数添加到onclick侦听器,以便在侦听器中访问该事件。
<div onclick="callJavascript(event)">
然后使用target
或srcElement
属性获取DOM元素。
function callJavascript(e) {
var target = e.srcElement || e.target;
alert(target.id);
}
工作demo
答案 2 :(得分:2)
您可以按如下方式使用jquery:
$(function() {
$("span").click(function(e) {
alert(this.id);
}
});
在此处查看此行动:http://jsfiddle.net/3KfyG/。
答案 3 :(得分:1)
尝试:
<script>
function callJavascript() {
alert(event.target.id);
}
</script>
答案 4 :(得分:1)
获取属性或类:
<div class="foo" my_attr="foo2" onclick="callJavascript(event)">
function callJavascript(e) {
var target = e.srcElement || e.target;
console.log(target.className);
console.log(target.getAttribute('foo2'));
}