0

我有一个对象HTML

<li id="m_delete" data-group="edit" class="m_delete edit-object disabled" data-control="delete" title="Delete"><a href="#"></a></li>
<li id="m_edit" data-group="edit" class="m_edit edit-object disabled" data-control="drag" title="Edit"><a href="#"></a></li> 

使用下一行我选择特定类中的所有元素。

$("#toolbar .edit-object").addClass('disabled');

但是我怎样才能delete从那个类中只选择元素呢?下一行有什么问题?

$("#toolbar .m_delete .edit-object").removeClass('disabled');

这是不正确的。如何修复(仅选择删除对象)?

4

3 回答 3

3
$("#toolbar .m_delete.edit-object").removeClass('disabled');

您应该删除类名之间的空格以使选择器正常工作(因为您正在 #toolbar 内寻找两个类的元素)

但当然最好用

$("#m_delete")

为了性能(并且因为该 id 在页面中是唯一的)

于 2012-07-02T10:00:10.323 回答
0

如果要选择同时具有 m_delete 类和 .edit-object 类的元素,可以使用此选择器:

$("#toolbar .m_delete.edit-object").removeClass('disabled');

我删除了空格,因为它将选择所有带有子元素 .edit-object 的 .m_delete。

于 2012-07-02T10:03:45.110 回答
0

您的选择器的问题在于,它选择了所有具有类edit-object并且具有带类的父节点的项目,该类m_delete具有具有 id 的父节点toolbar

你可以像这样在脑海中翻译它:

#toolbar // .m_delete // .edit-object

正如F. Calderan在他的帖子中正确所说,您可以在选择器中将一个项目与两者edit-objectm_delete类匹配,而无需空格:.edit_object.m_delete

这可以翻译为:

#toolbar // .m_delete & .edit_object
于 2012-07-02T10:06:38.337 回答