只是一个小例子。我有 3 个链接、一个按钮和一个 div:
<a href="#">AAA</a>
<a href="#">BBB</a>
<a href="#">CCC</a>
<button id="getResult">Get result</button>
<div id="result"></div>
现在,当按下按钮时,我想从 3 个链接中获取文本并将它们插入到结果 div 中。这是我的代码:
<script type="text/javascript">
$(function() {
$('#getResult').click(function() {
var links = $('a');
$.each(links, function() {
$('#result').append('<p>' + links.html() + '</p>');
});
}); // end click
}); // end ready
</script>
我希望结果会是
AAA
BBB
CCC
不过是
AAA
AAA
AAA
有谁知道为什么以及如何解决这个问题?如果你有更好的方法来做到这一点,你能告诉我吗?我对 jQuery 很陌生。感谢您的帮助。
最佳答案
在您的 .each
函数中,您调用 links.html()
仅获取集合中第一个 元素的 html。您的意思是使用 $(this).html()
(可能)。
http://jsfiddle.net/ExplosionPIlls/xZymh/
顺便说一下,您可以重写它以仅使用 .html
方法本身来执行附加操作:
$("a").html(function (_, html) {
$("#result").append("<p>" + html + "</p>");
});
关于javascript - 如何从 jQuery 选择器生成的集合中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020101/