使用一个复选框选择对表进行多次更改-使用id和class更改一个td的类和父tr的样式

时间:2019-12-16 23:14:21

标签: javascript css

我试图根据“价格”的类类型来更改第三个tr,同时使用同一复选框将父addClass更改为从隐藏显示。 相当确定在这里没有使用removeClass$(document).ready(function() { $("input[type=checkbox]").change(function() { var divId = $(this).attr("id"); if ($(this).is(":checked")) { $("." + divId).show(); $("." + addClass).countable(); } else { $("." + divId).hide(); $("." + removeClass).countable(); } }); });

<input class="my-activity" type="checkbox" value="42"> example<br/>
<input class="my-activity" type="checkbox" value="43"> example<br/>

以下是复选框:

</tr><tr class="42" style="display:none">
<td>example</td>
<td></td>
<td></td><td class="price">7800</td></tr><tr class="43" style="display:none">
<td>First Area</td>
<td></td>
<td></td><td class="price">6900</td></tr>

这是我要更新的表的一部分:

for

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

似乎您想使用输入的值来生成类选择器,但是您正在使用输入的ID,addClassremoveClass也是您在{{ 1}}对象。这是我想您尝试做的一个例子:

jQuery
$(document).ready(function() {
  $("input[type=checkbox]").change(function() {
    var val = $(this).val();
    var isChecked = $(this).is(":checked");

    var $trElement = $('.' + val);
    var $tdPriceElement = $trElement.find('td.price');
    
    $trElement.toggle(isChecked);
    $tdPriceElement.toggleClass('countable', isChecked);
  });
});
.countable {
  color: blue;
}

.toggle(...)函数根据作为参数传递的布尔值显示/隐藏元素,.toggleClass(..)函数根据作为第二参数传递的布尔值添加/删除类名。 / p>

如@zfrisch所述,由于似乎每一行都有其自己的类名(42、43 ...),因此您可能应该使用ID。