0

これが基本的な質問であることは知っていますが、コードのどこかで立ち往生しています。そのコードはどこかから入手しましたが、今は必要に応じて変更しています。

jQuery('#selector')は何をしますか?私のコードでは、常に空を返します。

これが私のコードです

query: function (selector, context) {
            var ret = {}, that = this, jqEls = "", i = 0;
            if(context && context.find) {
                jqEls = context.find(selector);
            } else {
                jqEls = jQuery(selector);
            }
            ret = jqEls.get();
            ret.length = jqEls.length;
            ret.query = function (sel) {
                return that.query(sel, jqEls);
            }

            return ret;
        }

このクエリ関数を呼び出すときは、セレクターをパラメーターとして渡します。私がそうするときconsole.log(selector)、それは私がこの関数で必要とするすべてのセレクターを持っています。しかし、問題はこの行にありjqEls = jQuery(selector);ます。console.log(jqEls)この後、空を返すので、関数全体が空を返します。

これとは異なるものを使用して機能させることはできますか?

4

4 に答える 4

1

jquery('#selector')と同等ですdocument.getElementById('selector')。IDが。のDOMノードがない場合はselector、空の結果が得られます。

例えば

<div id="selector">...</div>

このdivに対応するdomノードを返します。jqueryをロードしましたか?

于 2012-08-13T12:45:13.760 に答える
1

jQuery(selector)セレクターの条件を満たすDOM要素を探しています。

$('#example') == jQuery('#example')

どちらもIDが「example」の何かを探します

于 2012-08-13T12:45:36.057 に答える
0

コードを読んだ後、質問があります。変数に # を入れますselectorか? 不良行を次のように置き換えることでこれを解決する解決策jqEls = jQuery("#" + selector);

問題がそれによるものではない場合、の種類を教えていただけますselectorか? ストリング ?物体 ?jQuery オブジェクト ?

于 2012-08-13T13:11:10.643 に答える
0

$(selector).get()undefined要素が見つからない場合に返されます。これが、関数が を返す理由undefinedです。これを修正するには、要素が見つからない場合にデフォルト値を使用できます。

ret = jqEls.length ? jqEls.get() : {};

lengthこのようにして、関数は常にプロパティとプロパティを持つオブジェクトを返しますがquery、jQuery が要素を見つけられなかった場合、要素はありません。

于 2012-08-13T13:12:32.143 に答える