我如何使用jQuery将文本添加到特定的div元素?

时间:2013-01-11 12:54:34

标签: javascript jquery html

我遇到了jquery的问题。我的HTML是

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

现在我尝试使用Jquery

在span中添加文本
$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中做到这一点?

由于

5 个答案:

答案 0 :(得分:9)

几种可能的替代方案

其他人已经提供了他们的答案,但让我给你一些更多的选择。

$("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定位特定容器 (内部jQuery优化可能证明我未来的任何版本都有错误)

性能比较

这是一个JSPerf test表现,比较了更高的可能性。正如预期的那样,第二种和最后一种方法是最快的,因为元素选择大大简化了。我已尝试在Chrome上运行它们,如果您愿意,可以在其他浏览器中运行它们并查看差异。

答案 1 :(得分:4)

$('#first span.test').text('Welcome');

jQuery选择器是CSS选择器,扩展了一点魔力。您可以在此处找到您需要了解的所有信息:http://api.jquery.com/category/selectors/

答案 2 :(得分:1)

您需要使用:first选择器来表示您只想将文本添加到选择器找到的第一个元素。试试这个:

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

Example fiddle

或者,您可以使用父div的id使选择器唯一:

$j('#first .test').text('Welcome');

答案 3 :(得分:0)

在这个例子中,你可以做什么RoRyMcCrossan 对于一般选择,我建议您查看:http://api.jquery.com/child-selector/

或者你可以使用这个

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

答案 4 :(得分:0)

由于您有一个ID,通常在一个页面上是唯一的,因此最好使用以下内容:

$("#first span.test").text("Welcome");