1

私は突然、Mozilla / jQuery v1.8.2を使用しているときに、引用符と#記号でIDを使用する必要がないことに気付きました。たとえば、$(bt2)は$( "#bt2")と同じように機能します。以下のコードを参照してください。

このセレクターは常に機能しますか?この短い形式の選択を使用することによる潜在的な欠点はありますか?

<html>
<head>
    <title>append</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(document).ready (function(){
        $(bt2).click(function(){
           $(i1).append("<li>a4</li>", "<li>a5</li>");
        });
    }); 
   </script>
</head>
<body>
    <button id="Button1">Append List</button>
    <ul id="i1">
        <li>a1</li>
    </ul>
</body>
</html>
4

4 に答える 4

1

これは、すべてのブラウザが使用しているため、信頼すべきではないという前提です。

他の開発者があなたのコードを取得するのは良くないので、それを完全に避ける方が良いでしょう。あなたは常に、自分自身だけでなく、それが文書化された方法であるかに関して、最良のセマンティクスを推論して使用するように努めるべきです。

jQueryには、セレクターに関するページ全体があります。

そのような説明を使用してください。

于 2012-11-18T11:13:45.977 に答える
1

一部のブラウザは、IDなしでhtml要素への直接アクセスをサポートしており、それらにアクセスするためにjqueryセレクターやdocument.getElementByIdは必要ありません。In the jquery selector the id you are passing is not taken as Id but as object (html element)Button1.idはidである場合にidを提供するため、idを提供するべきではありません。ここでは、 getElementByIdLiveDemoでさえもセレクターを使用していません 。

HTML

<button id="Button1">Append List</button>

Javascript

alert( Button1.id); //Without any jquery selector or getElementById

Id Button1を使用してボタンのイベントをバインドするための以下のコードでは、Button1はIDとして取得されませんが、オブジェクトとjqueryはjavascriptアクセス可能なdomオブジェクトをjqueryオブジェクトに変換し、クリックイベントをバインドします

$(Button1).click(function(){
});
于 2012-11-18T11:36:25.423 に答える
0

それは可能ですが、他のブラウザでは機能しない可能性があることに注意してください。代わりに使用する必要があります

$("#id")
于 2012-11-18T11:09:05.363 に答える
0

ブラウザはIDを持つ要素をキャッシュし、それをドキュメントのHTMLCollectionに保存します。これを確認するには、開発者ツールにChromeでアクセスし、ページが読み込まれるときにjavascriptの先頭にブレークポイントを設定します。[ローカル]セクションの下の右側のペインの下を見てください。ここでこれを展開します:ドキュメントそしてすべての下で:HTMLAllCollection []あなたはすべての要素を見ることができ、その下にIDを持つすべての要素のリストがあります。ただし、jQueryのドキュメントhttps://api.jquery.com/id-selector/にはこれが記載されていないため、正しい構文ではありません。また、読みやすさとメンテナンスのために、$('#id')に固執することをお勧めします。

于 2015-03-29T07:33:51.357 に答える