我的jQuery:
$(".result").on("click", function(event){
Side;
var Id = $(this).closest('span.bannerid').data('id');
$.ajax({type: 'GET', url: 'someurl/klik?id=' + Id + '&side=' + Side});
});
HTML横幅:
<div class="result">
<span class="bannerid" data-id="6"></span>
<p style="text-align: center;">
<a href="http://www.sonmeurl" rel="attachment wp-att-42">
<img src="http://www.someimageurl" width="930" height="180">
</a>
</p>
</div>
问题是没有为ajax调用定义id,它似乎找不到具有ID的span。
发布于 2013-01-08 17:23:29
尽管您可以直接使用它的class
var Id = $('span.bannerid').data('id');
其他更多是
var Id = $(this).children('span.bannerid').data('id');
和
var Id = $(this).find('span.bannerid').data('id');
注意: .closest()
将为您找到element at the same level
,而不是父元素中的子元素或孙元素。
发布于 2013-01-08 17:20:25
.closest()用于搜索父级或自身。请改用.find():
var Id = $(this).find('span.bannerid').data('id');
发布于 2013-01-08 17:21:44
因为它是一个直接子对象,所以可以使用children()
过滤器。这比使用find()
的效率略高,因为它不会遍历整个节点--只遍历它的直接子节点。
$(".result").on("click", function(event) {
Side;
var Id = $(this).children('span.bannerid').data('id');
$.ajax({type: 'GET', url: 'someurl/klik?id=' + Id + '&side=' + Side});
});
https://stackoverflow.com/questions/14220539
复制