javascript - 如何仅在JQuery上的指定区域更改类?

标签 javascript jquery addclass

我有一个表,其中包含一些具有相同类的 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/

相关文章:

javascript - 发送嵌入到 discord.js 中的 channel 不起作用

javascript - 根据值(value)选择选项

javascript - JQuery 在使用先前的 .replaceWith() 创建的 html 元素上使用 .replaceWith()

javascript - 为每个选定元素设置不同的超时

jQuery Fullcalendar 更改事件单个元素的类

javascript - 在导航菜单中放置缩略图而不是文本 (Wordpress)

javascript - AngularJS - 表单自定义验证 - 检查是否至少填写了一个输入

javascript - 使用正则表达式按单词或运算符拆分

jquery - 如何在插件中创建私有(private)方法?

jquery - 滑动切换问题