0

このスクリプトは、の秘書として機能する「call」という名前のメソッドを持つように作成しましたdocument.querySelectorAll()。例:

var obj = {
    call: function( s ) { return document.querySelectorAll( s ); }
};

obj.call(".test").innerHTML == "Changed";

<p class="test">Original</p>

したがって、明らかに(私は思う)これはinnerHTML値を「Original」から「Changed」に変更しますが、機能していません。

私はのような他のテストを試しまし.style.background = "red";たが、それもうまくいきませんでした。

Chromeのエラーコンソールにエラーが表示されなかったため、これが機能しない理由がわかりません。私はjavascriptに関しては完全な初心者なので、どんな助けでも大歓迎です。

4

1 に答える 1

2

QSAはNodeList(基本的には配列のように見えて動作します)を返します。ドキュメントはこちら:https ://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

そのため、以下を比較する必要があります。

var isFoo = obj.call('.test')[0].innerHTML == 'foo';

他のいくつかのポイント:

1)呼び出しはJSで予約語であり、他のものを選択することをお勧めします

2)結果(現在行っていること)を比較しようとしていますか、それともinnerHTMLを設定しようとしていますか?後者の場合、コードは次のようになります。

obj.call('.test')[0].innerHTML = 'foo';

==は比較演算子であり、代入ではないためです。

于 2013-01-08T22:39:42.843 に答える