我对以下内容有一些问题
如果我在循环中添加一个额外的列,则不会通过 jquery 脚本删除 ccs 类。 如果我删除它的工作..
<?php foreach ($option['option_value'] as $option_value) { ?>
<td>
<a class="option-detail"> <img src="image"></a>
</td>
<?php } ?>
我做错了什么?
jquery 代码的一部分
$(document).ready(function(){
$("a.option, a.option-detail").click(function(event){
$this = $(this);
$this.parent().find('a.option, a.option-detail').removeClass('option-active');
$this.addClass('option-active');
这是因为parent
不足以让你达到需要更改的节点所在的顶级。
也就是说,你只是向上移动到包含td
的tr
,而不是table
?
如果没有更多的代码(更多的HTML生成),很难确定。
我最好的猜测是,您实际上需要找到closest
表而不是parent
表。
例如
$this.closest( 'table' ).find('a.option, a.option-detail').removeClass( 'option-active' );
这个小提琴给你一个例子来说明我的建议......
使用<a class="option-detail"><img src="image"></a>
(删除之前a.
)
因为有了这个:
<a class="a.option-detail" <img src="image"></a>
您的类名将被.a.option-detail
并通过关闭>
修复您的 HTM
为什么要
在"a.option"上进行单击事件,然后在删除和添加类之前转到父级并再次找到锚点?执行以下操作不是更容易吗:
$(document).on('click', 'a.option, a.option-detail', function() {
$this = $(this);
$('.option-active').removeClass('option-active');
$this.addClass('option-active');
}