私はjQueryを初めて使用するので、密集していることを許します。 ChromeのJSコンソールで特定のページのすべての<td>
要素を選択したい:
$('td')
しかし、これを行うと、次の出力が得られます。
<td>Apples</td>
JQueryは<td>
タグを持つ要素の配列を返すことになっていないのですか?この基準に一致する最初の要素しか表示されないのはなぜですか?
問題のサイトは次のとおりです。 http://www.w3schools.com/html/html_tables.asp
編集:jQuery関数をChromeコンソールに入力すると、jQueryオブジェクトは返されません。プレーンなHTML要素が返されます。何か問題があるはずです。方法my Chromeはセットアップ/構成されています。
JQueryがWebページに存在せず、もちろん他のコードが_$
_に何かを割り当てない場合、ChromeのJSコンソールは_$
_にdocument.querySelector()
へのショートカットを割り当てます。
コンソールで$$()
へのショートカットが割り当てられているdocument.querySelectorAll()
を使用すると、目的を達成できます。
ページにjQueryが含まれているかどうかを確認するには、コンソールでjQuery
を実行します。 jQueryが_$
_に割り当てられているかどうかを確認するには、$().jquery
を実行して、jQueryバージョンが返されるようにします。
また、すべてのWebページにjQueryを挿入するブラウザーアドオンがあります。
ターゲットページで実行するjQueryが適切に含まれていないようです。 Google Chromeでも同様の問題があり、次のように解決しました。
ChromeブラウザにURLフィールドとして次の1行のコードを含むブックマークを追加します(読みやすくするために美しくしています):
_javascript: (function () {
var s = document.createElement('script');
s.setAttribute('src', 'https://code.jquery.com/jquery-latest.min.js');
if (typeof jQuery == 'undefined') {
document.getElementsByTagName('head')[0].appendChild(s);
}
jQuery("td.edit select option[value=BN]").attr("selected", "");
})();
_
次に、そのブックマークをクリックして実行します。通常はjQueryを含め、_$
_を入力すると、function (e,t){return new b.fn.init(e,t,r)}
のようなものを返すようにコンソールを作成する必要があります。
ブックマーク(ブックマークレットとも呼ばれる)を作成するプロセスは、コンソールで作業するすべてのページにjQueryを挿入するための省略形です。ただし、スニペットコードは、JSコンソールに直接コピーアンドペーストしても機能します。
PS:スニペットのクレジットは私のものではありません。しばらく使用していますが、どこから入手したのか覚えていないからです。
それが役に立てば幸い。
JQueryがインストールされており、_$
_シンボルがjQueryの省略形である場合、$('td')
はjQueryオブジェクトを返します。しかし、リンクしたw3schoolsページでは、jQueryが存在することすらわかりません。
JQueryが存在し、デバッガーが_$
_シンボルをオーバーライドしていない場合、$('td')
はjQueryオブジェクトを返します。 jQueryオブジェクトは配列のようなオブジェクト(配列のプロパティをいくつか持っています)ですが、実際の配列ではありません。コンソールで物事を見ている場合、含まれているjQueryオブジェクトではなく、DOM要素自体を見ていることを確認する必要があります。
DOM要素の実際の配列を取得したい場合、これを行うことができます:
_$('td').get();
_
dOM要素の配列を返します。
それでもうまくいかない場合は、$('td').get()
への呼び出しのタイミングを調べて、検索する前に、必要なすべてのtd
アイテムがページにあることを確認する必要があります。
また、各tdで何かを実行しようとしている場合は、.each()
を使用してそれらをループする必要があります。例えば:
$('td').each(function() {
//do something relevant here
});