Javascript text()显示双文本

Javascript text()显示双文本,javascript,jquery,html,Javascript,Jquery,Html,发生了一种奇怪的情况。我有一个,里面有文字。当我用.text()提取此文本,然后将其放入中时,文本会出现两次 HTML <h3 class="profileRightAboutMeText">Heya, this is all the text.</h3> <textarea class="profileRightAboutMeTextarea"></textarea> 警报和均显示双文本,如下所示: 嘿,这是所有的文本。嘿,这是所有

发生了一种奇怪的情况。我有一个
,里面有文字。当我用.text()提取此文本,然后将其放入
中时,文本会出现两次

HTML

<h3 class="profileRightAboutMeText">Heya, this is all the text.</h3>     
<textarea class="profileRightAboutMeTextarea"></textarea>
警报和
均显示双文本,如下所示:


嘿,这是所有的文本。嘿,这是所有的文本。

对于表单元素,您应该使用而不是
text()


此外,请检查是否有类为
profileRightAboutMeText

的重复元素。我想说,在页面上有两个元素与$('h3.profileRightAboutMeText')匹配

您可以在这里看到:文本显示两次,因为我在html中添加了额外的h3.profileRightAboutMeText,但是如果删除了额外的行,那么它只显示一次


尝试将$('h3.profileRightAboutMeText')放入firebug中的控制台,并查看它与多少元素匹配…

JQuery对于
text()
方法具有不同的行为,以防通过复合路径寻址的重复项

例如,让

<div id=b class="a">2</div>
<div id=b class="a">3</div>
要避免此问题,请务必使用.first()


它似乎工作得很好:您确定页面上没有多个
h3
元素,这些元素的类为
profileRightAboutMeText
?@barlasapaydin:fiddle不会将原始文本复制到文本框中,这似乎是一项要求。@barlasapaydin在您的示例中无法工作,因为您使用了
val()
元素的方法。这是正确的小提琴:。@VisioN,然后给我们看一把有效的小提琴。注意:这里不是op在其问题上提出的工作版本:@VisioN:尽管您的答案给出了正确的建议,但这似乎不是文本区域中重复文本的原因。事件由OP发布的代码不会复制小提琴中的文本,并按预期工作。HTML中似乎有更多的
h3
元素。@FrançoisWahl原因应该是重复的。我在答复中提到了这一点。
$("textarea.profileRightAboutMeTextarea").val(originalText)
<div id=b class="a">2</div>
<div id=b class="a">3</div>
var val1 = $("#b").text()
var val2 = $("#b.a").text()

// val1 = 2
// val2 = 23
var val3 = $("#b.a").first().text()

// val3 = 2