我做了一个循环,我根据颜色的数量放了几个按钮,但不管我点击什么按钮,它显示我点击第一个,按钮是唯一的,我设置他们是。
html - loop
<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号,无论我点击什么按钮,任何积分都可以找到问题?因为我几乎尝试了一切,而且我不知道在哪里继续寻找。
答案 0 :(得分:2)
您需要找到被点击的tr
中最近的save_img
,因为您需要知道哪个是点击的元素。单击处理程序中的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')
将返回具有tr
元素的所有.save_img
元素,然后.attr('row_id')
将返回该集合中第一个元素的id
。< / p>
正如@John在下面建议的那样你也可以使用
$('.save_img').click(onChooseImageClick);
function onChooseImageClick(el) {
var rowId = $(this).closest('tr').attr('row_id');
alert(rowId);
}