我有一个循环显示带有类名的按钮,上面有javascript。我需要传递被点击的span的id。我的问题是因为那里的循环,我可以通过索引获取ID,但我想要得到的是动态点击按钮的id。
while(...){
<span class="id">'.$table["id"].'</span>
<input type="button" class="edit" value="Edit"/>
}
$('.edit').on('click', function (e) {
var x=document.getElementsByClassName("id")[0];
var xx = x.innerHTML;
$.fancybox({
...
}
});
});
答案 0 :(得分:1)
听起来像你想要使用
var x = $(this).closest(“span”);
这应该会让你看到点击按钮旁边的范围。
答案 1 :(得分:0)
你能否只使用$(this)
。在你的点击事件中?
你不需要这样做:
var x=document.getElementsByClassName("id")[0];
只是说
var x = $(this);
因为当点击事件发生时,你已经在你的元素上了。
希望它有所帮助! :)
答案 2 :(得分:0)
我会使用data attributes来传递变量,因此您只能将类保留为css样式。另外,如果你已经在使用jQuery,为什么不一直用它呢?
while(...){
<span class="id" data-id="id">'.$table["id"].'</span>
<input type="button" class="edit" value="Edit" data-target="id"/>
}
$('.edit').on('click', function (e) {
var data = $(this).data('target'); // Get the data-target attribute
var target = $('*[data-id='+data+']'); // Find the matching span
var xx = target.html(); // Get HTML from Span
$.fancybox({
...
}
});
});