12

jqueryに問題があります。私のHTMLは

<div id="first">
   <span class="test"></span>
</div>
<div id="second">
   <span class="test"></span>
<div> 

今、Jquery を使用してスパンにテキストを追加しようとしています。

$j('span.test').text('Welcome');

その後、

<div id="first">
    <span class="test">Welcome</span>
</div>
<div id="second">
    <span class="test">Welcome</span>
<div> 

しかし、私が達成しようとしているのは、

<div id="first">
    <span class="test">Welcome</span>
</div>
<div id="second">
    <span class="test"></span>
<div>

どうすればjqueryでそれを行うことができますか?

4

5 に答える 5

14

いくつかの可能な選択肢

他の人はすでに答えを提供していますが、私はあなたにいくつかの選択肢を与えましょう。

$("span.test:first").text("Welcome");
$("#first span.test").text("Welcome");
$("span.test").first().text("Welcome");
$("span.test").eq(0).text("Welcome");
$("span.test", "#first").text("Welcome");

IDで特定のコンテナをターゲットにしているため、2番目で最後の1つが最速である可能性があります。
(内部のjQuery最適化は、将来のバージョンで私が間違っていることを証明する可能性があります)

パフォーマンスの比較

これは、パフォーマンスが上位の可能性を比較するJSPerfテストです。予想どおり、要素の選択が大幅に簡素化されているため、2番目と最後のアプローチが最も高速です。Chromeで実行してみましたが、違いを確認したい場合は、他のブラウザで実行できます。

于 2013-01-11T13:04:51.480 に答える
5
$('#first span.test').text('Welcome');

jQuery セレクターは、ちょっとした魔法で拡張された CSS セレクターです。ここで知る必要があるすべてを見つけることができます: http://api.jquery.com/category/selectors/

于 2013-01-11T12:57:56.707 に答える
1

セレクターを使用して:first、セレクターが見つけた最初の要素にのみテキストを追加する必要があります。これを試して:

$j('span.test:first').text('Welcome');

フィドルの例

idまたは、親 div の を使用して、セレクターを一意にすることもできます。

$j('#first .test').text('Welcome');
于 2013-01-11T12:55:21.937 に答える
0

通常は 1 つのページで一意の ID があるため、次を使用するのが最適です。

$("#first span.test").text("Welcome");
于 2013-01-11T13:14:35.467 に答える
0

この例では、次のことができます RoRyMcCrossan 一般的な選択については、これを見ることをお勧めします: http://api.jquery.com/child-selector/

または、これを使用できます

http://api.jquery.com/eq-selector/

于 2013-01-11T13:09:31.607 に答える