我的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。
答案 0 :(得分:3)
虽然您可以直接使用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
而不是父元素中的子女或孙子。
答案 1 :(得分:1)
.closest()用于搜索父母或自己。改为使用.find():
var Id = $(this).find('span.bannerid').data('id');
答案 2 :(得分:0)
由于它是直接的孩子,因此您可以使用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});
});