我有一个表,其中包含一些具有相同类的 td
元素。但我只想更改指定区域 .selected
中的 claas。
我做这个:
<tr>
<td>--</td>
<td class="mcost"></td>
</tr>
<tr class="selected">
<td><input type="radio" name="work" onclick="selone('.selected','#sel1','m');" checked="checked" /></td>
<td id="sel1" class="mcost"></td>
</tr>
<tr class="selected">
<td><input type="radio" name="work" onclick="selone('.selected','#sel2','m');" /></td>
<td id="sel2" class="mcost"></td>
</tr>
<tr>
<td>--</td>
<td class="mcost"></td>
</tr>
试试这个:
function selone(g,f,n){
$(g).each(function(){
$('.'+n+'cost').removeClass().addClass(n+'cost_dis');
});
$(f).removeClass().addClass(n+'cost');
}
但是它改变了所有mcost元素的类=(不仅仅是在指定区域。如何改进它?
最佳答案
在 .each 中,您重新查询整个 dom 中的 .mcost 单元格。您需要执行以下操作:
function selone(g,f,n){
$(g).each(function(){
$(this).find('.'+n+'cost').removeClass().addClass(n+'cost_dis');
});
$(f).removeClass().addClass(n+'cost');
}
这只会更改 $(g) 元素内的 .mcost 项目。这应该有效。让我知道。
关于javascript - 如何仅在JQuery上的指定区域更改类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7495453/