Javascript 单击$(this)时,是否在每个tr中单独执行onclick函数?
单击tr时,我希望在tr中的每个项目中执行相同的代码。所有tr元素中的项目都相同。所以问题是,脚本没有发现任何遗漏,而是执行使用此id找到的第一个元素 以下是我需要的HTML代码:Javascript 单击$(this)时,是否在每个tr中单独执行onclick函数?,javascript,jquery,html,Javascript,Jquery,Html,单击tr时,我希望在tr中的每个项目中执行相同的代码。所有tr元素中的项目都相同。所以问题是,脚本没有发现任何遗漏,而是执行使用此id找到的第一个元素 以下是我需要的HTML代码: <tbody id="bList"> <tr class=""> <td class="center" style="display:none;"></td> <td></td> <td class="center"
<tbody id="bList">
<tr class="">
<td class="center" style="display:none;"></td>
<td></td>
<td class="center"></td>
<td class="center"></td>
<td class="center" style="width:200px !important;">
<span id="timer" class="countdown callback ended" onclick="return false;"
data-inc="0" data-time="10" data-id="btc2" rel="nofollow"></span>
<span id="starter" class="" active="yes"> > </span>
</td>
<td class="center">
<span id="open" class="">Open</span>
</td>
<td class="center"></td>
<td class="center"></td>
</tr>
<tr class="selected">
<td class="center" style="display:none;"></td>
<td></td>
<td class="center"></td>
<td class="center"></td>
<td class="center" style="width:200px !important;">
<span id="timer" class="countdown callback ended" onclick="return false;"
data-inc="0" data-time="10" data-id="btc1" rel="nofollow"></span>
<span id="starter" class="" active="no"> > </span>
</td>
<td class="center">
<span id="open" class=""> Open </span>
</td>
<td class="center"></td>
<td class="center"></td>
</tr>
</tbody>
那么,有没有办法做到这一点呢?首先,您应该知道
ID
应该是唯一的。处理时,单击多个元素上的事件
改用类
由于jQuery
希望ID
是唯一的,因此它总是在第一个元素上激发
$('.starter').click(function(){
//code
})
首先,您应该知道ID
应该是唯一的。处理时,单击多个元素上的事件
改用类
由于jQuery
希望ID
是唯一的,因此它总是在第一个元素上激发
$('.starter').click(function(){
//code
})
如注释中所述,id
应该是唯一的。
因此,要实现这一点,请切换到类,它将很好地工作:
$('.open')。单击(函数(){
var tr=$(this).closest('tr'),
timer=tr.find('.timer'),
starter=tr.find(“.starter”);
if(timer.hasClass('end')){
html('Start Timer!>').attr({
“活动”:“是”
});
}否则{
if($('#starterModal')。是(':hidden')){
$('#starterModal').show().wait(6000.hide();
}
}
});
$('.starter')。单击(函数(){
var elem=$(此),
tr=元素最近('tr'),
timer=tr.find('.timer');
如果(元素属性(“活动”)为“是”){
timer.click();
elem.html('>').attr({
“活动”:“否”
});
//更新获得的奖励
log(tr.find('td:nth child(1)').html());
/*$.ajax({//您也可以忽略它!它工作正常!
键入:“POST”,
url:“../files/php/update_rewardHistory.php”,
数据:{
id:$(this.parent().parent().find('td:nth child(1)').html(),
货币:“btc”
},
成功:函数(数据){}
});*/
}否则{//您可以忽略此部分!请显示模式
if($('#starterModal')。是(':hidden')){
$('#starterModal').show().wait(6000.hide();
}
}
});
$('#bList tr')。单击(函数(){
$(this).addClass('selected').sides().removeClass('selected');
//log($(this.parent().parent().find('td:nth child(1)')).html());
});代码>
>
打开
>
打开
如注释中所述,id
应该是唯一的。
因此,要实现这一点,请切换到类,它将很好地工作:
$('.open')。单击(函数(){
var tr=$(this).closest('tr'),
timer=tr.find('.timer'),
starter=tr.find(“.starter”);
if(timer.hasClass('end')){
html('Start Timer!>').attr({
“活动”:“是”
});
}否则{
if($('#starterModal')。是(':hidden')){
$('#starterModal').show().wait(6000.hide();
}
}
});
$('.starter')。单击(函数(){
var elem=$(此),
tr=元素最近('tr'),
timer=tr.find('.timer');
如果(元素属性(“活动”)为“是”){
timer.click();
elem.html('>').attr({
“活动”:“否”
});
//更新获得的奖励
log(tr.find('td:nth child(1)').html());
/*$.ajax({//您也可以忽略它!它工作正常!
键入:“POST”,
url:“../files/php/update_rewardHistory.php”,
数据:{
id:$(this.parent().parent().find('td:nth child(1)').html(),
货币:“btc”
},
成功:函数(数据){}
});*/
}否则{//您可以忽略此部分!请显示模式
if($('#starterModal')。是(':hidden')){
$('#starterModal').show().wait(6000.hide();
}
}
});
$('#bList tr')。单击(函数(){
$(this).addClass('selected').sides().removeClass('selected');
//log($(this.parent().parent().find('td:nth child(1)')).html());
});代码>
>
打开
>
打开
id
应该是唯一的!改为使用class
。是的,我知道id应该是唯一的!我想让它看起来只有在元素上是独一无二的。即使是类,我认为这也会是同样的问题。请阅读这篇文章——特别是“最小”部分——你的大部分代码都标有“你可以忽略这一部分”——如果我们可以忽略它,那么它就不应该存在问题。至于真正的问题是什么,这太令人困惑了。您可以使用类似于jsfiddle的东西来重新创建这个问题。对此我很抱歉,我将在jsfiddle中创建它。idid
应该是唯一的!改为使用class
。是的,我知道id应该是唯一的!我想让它看起来只有在元素上是独一无二的。即使是类,我认为这也会是同样的问题。请阅读这篇文章——特别是“最小”部分——你的大部分代码都标有“你可以忽略这一部分”——如果我们可以忽略它,那么它就不应该存在问题。至于真正的问题是什么,这太令人困惑了。您可以使用类似于jsfiddle的东西来重新创建问题。对此我很抱歉,我将在jsfiddle中创建它。它正按照我的需要完美地工作着!:)非常感谢。您的答案将被确认并与他人分享。它正按照我的要求完美运行!:)非常感谢。您的答案将被确认并分享。我想您@Pilatus也被建议使用相同的解决方案,而且对我来说效果很好!我想你@Pilatus也被建议使用相同的解决方案,而且对我来说效果很好!