3

我无法获取元素的 ID。这些代码适用于 FF 和 chrome,但不适用于 IE。任何人都可以帮助我吗?非常感谢

<td id='tdID'>
    <img id='test' src='a.jpg' class='imgClass' />
</td>

jQuery

$('.imgClass').click(function(){
   ip=$(this).parent().attr('id');          

   //undefined in IE
   console.log(ip);
})
4

2 回答 2

2

<td>s必须在 a 内<table>。如果不是,大多数浏览器会将它们从 DOM 中删除。因此,这$(this).parent()可能不是您认为的元素。

这是一个快速演示:http: //jsfiddle.net/NTICompass/cyK3h/

于 2012-08-20T18:12:05.013 回答
1

使用prop,而不是attr

$('.imgClass').on("click", function(){
   var id = $(this).parent().prop("id");          
   console.log(id);
});

另外,如果您更改标记,使用最接近的标记可能更安全

$('.imgClass').on("click", function(){
   var id = $(this).closest("td").prop("id");          
   console.log(id);
});

jsFiddle

于 2012-08-20T18:32:18.983 回答