0

[0]を使用する必要がなく、innerTextの代わりにJQuery Textでテキストにアクセスできるように、これを記述するためのより良い方法はありますか?クロスブラウザ互換性のためにinnerTextを使用したくありません。

$('#' + controlBestPractice)[0].innerText
4

4 に答える 4

6

セレクターが複数の要素を返す場合は、最初に使用します(内部controlBestPracticeに何があるかはわかりません。たとえば、次のようになります#div-id p)。

$('#' + controlBestPractice).first().text()

bhamlinがコメントで指摘しているように、idセレクターを使用しているように見えるため、要素は1つだけである必要があるため、これは機能するはずです。

$('#' + controlBestPractice).text()
于 2012-07-17T16:39:57.660 に答える
1

あなたはこのようなことを試すことができます:

$('#' + controlBestPractice + ':eq(0)').text();

また

$('#' + controlBestPractice).first().text()
于 2012-07-17T16:40:59.617 に答える
1

なんでやってるの.first()?これはIDであり、1つだけ存在する必要があります。

$('#' + controlBestPractice).text()

うまく動作します

デモ

次の状況で必要になるかもしれませんが.first()、それは選択の悪い(紛らわしい)方法にすぎません。

<div id="foo">
    <div class="bar">a</div>
    <div class="bar">b</div>
    <div class="bar">c</div>
</div>

controlBestPractice = "foo .bar";
$('#' + controlBestPractice).text(); // returns abc
$('#' + controlBestPractice).first().text() // returns a
于 2012-07-17T16:42:54.440 に答える
1

[0]idによるセレクターなので、最後にを追加する必要はありません。は#IDで選択していることを示し、IDは一意であるため、jQueryは単一の要素のみを返します。

于 2012-07-17T16:43:11.583 に答える