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

セレクターの問題は、クラスを持ち、 id を持つedit-object親ノードを持つクラスを持つ親ノードを持つすべてのアイテムを選択することです。m_deletetoolbar

頭の中で次のように言い換えることができます。

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

F.カルデランが彼の投稿で正しく言っているように、セレクターにスペースを入れずに、アイテムを両方edit-objectm_deleteクラスに一致させることができます.edit_object.m_delete

これは次のように翻訳できます。

#toolbar // .m_delete & .edit_object
于 2012-07-02T10:06:38.337 に答える
0

m_delete クラスと .edit-object クラスの両方で要素を選択する場合は、次のセレクターを使用できます。

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

子要素 .edit-object を持つすべての .m_delete が選択されるため、スペースを削除しました。

于 2012-07-02T10:03:45.110 に答える