parentNode Class 不删除

parentNode Class Not Removing

我需要从当前节点的父节点 <span> 中删除一个 class。我将当前节点命名为行。当控制台 rows.parentNode 得到 DOMTokenList["checked"] 时。如何从中删除 checked class?

我已经尝试 rows.parentNode.classList.remove("checked") 但它不起作用。

HTML

<span class="checked">
        <input type="checkbox" data-orginal="14" data-vxp="50" value="14" data-amount="75" name="expenses" class="old_expenses">
</span>

问题是我在 rows.parentNode.classList.remove("checked") 之后调用了 uniform() 来更新列表。

$('#checkbox').find('input[type=checkbox]').uniform();

删除它后完美运行。

谢谢大家

classList returns 一个 DOMTokenList,可用于 add/remove classes 元素。但如您所见here,它仅在最新的浏览器中受支持。

我建议您使用 jQuery 来执行此操作

var $parent = $(rows.parentNode);
if( $parent.hasClass('checked') ){
   $parent.removeClass('checked');
}

如果你知道 checked class 总是存在,你也可以跳过 if 条件。

如果你只想使用javascript,我建议你这样做

var  parent = rows.parentNode,
     classNames = parent.className;
var newList = classNames.replace('checked','');
parent.className = newList;

希望对您有所帮助:)