2011-07-31 6 views
1

私は次のHTMLを持っています。はこれですjqueryの有効なHTML

div#main-content div#right-col div#post-show div#post-img div#post-img-large{ 

} 
div#main-content div#right-col div#post-show div#post-img div#post-img-large 
    img#post-img-large{ 
} 

ご覧のとおり、divとimgに同じIDを使用しています。

これは許可されていますか?私はそれがうまく動作することを知っているが、jQueryは私がポストimg-largeを参照すると混乱するだろうか?

答えて

3

IDは、任意のページに複数の要素で使用すべきではありません。それらは要素を一意的に識別するために使用されます。

ここで、jQueryを使用している場合、詳細情報(div#ID、img#ID)でセレクタを修飾することによって、必要な要素を選択する方法が常にあります.jQueryは混乱しないでしょうし、 IDを再利用するのではなく、標準に固執する必要があります。 W3Cの

http://www.w3.org/TR/html4/struct/global.html(HTML4、それはまだ適用されます)有効なHTMLではありません

7.5.2 Element identifiers: the id and class attributes 

Attribute definitions 

id = name [CS] 
This attribute assigns a name to an element. This name must be unique in a document. 
class = cdata-list [CS] 
This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters. 
3

以前の経験から:IDセレクタについて

、jQueryのは非常に効率的である のdocument.getElementById()は、JavaScript関数を使用します。他の セレクタがh2#pageTitleなどのidセレクタに接続されている場合、 と一致する前に、jQuery が追加チェックを実行します。

各id値は、ドキュメント内で1回のみ使用する必要があります。 以上の要素に同じIDが割り当てられている場合、そのIDを使用するクエリ は、DOMで最初に一致する要素のみを選択します。しかし、この動作は に依存すべきではありません。同じIDを使用する複数の 要素を持つ文書は無効です。

出典:http://api.jquery.com/id-selector/

0

id sが一意である必要があります。

はい、重複したIDのためにjqueryが期待どおりに機能しない可能性があります。実際には、ちょうど2,3日前に、ここで機能が壊れていることがわかりました。

関連する問題