循环中的按钮,单击仅触发第一个按钮
buttons in loop, click trigger only first button
我做了一个循环,在这个循环中我根据我得到的颜色数量放置了几个按钮,但是无论我点击哪个按钮,它都显示我点击第一个按钮,按钮是唯一的,我设置他们 id.
html - 循环
<td> <div> Add 2nd color </div> </td>
<td style="min-width:121px;position:relative;">
'.$pop['pop3'].'
<div id= "'.$i.'" class="btn save_img"> Choose image </div>
js:
$('.save_img').click(function(){
onChooseImageClick();
});
function onChooseImageClick()
{
var rowId = $('.save_img').closest('tr').attr('row_id');
alert(rowId);
警报总是给我 1 号,无论我点击什么按钮,有什么要查找问题的地方吗?因为我几乎尝试了所有方法,所以我不知道该从哪里继续寻找。
您需要找到被点击的 save_img
最近的 tr
,因为您需要知道哪个是被点击的元素。单击处理程序中的 this
指的是句柄所针对的元素(此处为 save_img
元素),因此将其传递给 onChooseImageClick
然后使用该元素引用来查找 tr
元素
$('.save_img').click(function () {
onChooseImageClick(this);
});
function onChooseImageClick(el) {
var rowId = $(el).closest('tr').attr('row_id');
alert(rowId);
}
$('.save_img').closest('tr')
将 return 所有具有 .save_img
元素的 tr
元素,然后 .attr('row_id')
将 return id
该集合中的第一个元素。
正如下面@John 所建议的,您也可以使用
$('.save_img').click(onChooseImageClick);
function onChooseImageClick(el) {
var rowId = $(this).closest('tr').attr('row_id');
alert(rowId);
}
我做了一个循环,在这个循环中我根据我得到的颜色数量放置了几个按钮,但是无论我点击哪个按钮,它都显示我点击第一个按钮,按钮是唯一的,我设置他们 id.
html - 循环
<td> <div> Add 2nd color </div> </td>
<td style="min-width:121px;position:relative;">
'.$pop['pop3'].'
<div id= "'.$i.'" class="btn save_img"> Choose image </div>
js:
$('.save_img').click(function(){
onChooseImageClick();
});
function onChooseImageClick()
{
var rowId = $('.save_img').closest('tr').attr('row_id');
alert(rowId);
警报总是给我 1 号,无论我点击什么按钮,有什么要查找问题的地方吗?因为我几乎尝试了所有方法,所以我不知道该从哪里继续寻找。
您需要找到被点击的 save_img
最近的 tr
,因为您需要知道哪个是被点击的元素。单击处理程序中的 this
指的是句柄所针对的元素(此处为 save_img
元素),因此将其传递给 onChooseImageClick
然后使用该元素引用来查找 tr
元素
$('.save_img').click(function () {
onChooseImageClick(this);
});
function onChooseImageClick(el) {
var rowId = $(el).closest('tr').attr('row_id');
alert(rowId);
}
$('.save_img').closest('tr')
将 return 所有具有 .save_img
元素的 tr
元素,然后 .attr('row_id')
将 return id
该集合中的第一个元素。
正如下面@John 所建议的,您也可以使用
$('.save_img').click(onChooseImageClick);
function onChooseImageClick(el) {
var rowId = $(this).closest('tr').attr('row_id');
alert(rowId);
}