Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从jQuery选择器生成的集合中提取数据?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何从jQuery选择器生成的集合中提取数据?

Javascript 如何从jQuery选择器生成的集合中提取数据?,javascript,jquery,html,Javascript,Jquery,Html,只是一个小例子。我有3个链接,一个按钮和一个div: <a href="#">AAA</a> <a href="#">BBB</a> <a href="#">CCC</a> <button id="getResult">Get result</button> <div id="result"></div> 但事实确实如此 AAA AAA AAA 有人知道为什么以及如何解决这

只是一个小例子。我有3个链接,一个按钮和一个div:

<a href="#">AAA</a>
<a href="#">BBB</a>
<a href="#">CCC</a>
<button id="getResult">Get result</button>
<div id="result"></div>
但事实确实如此

AAA
AAA
AAA
有人知道为什么以及如何解决这个问题吗?如果你有更好的方法,能告诉我吗?我对jQuery非常陌生。谢谢您的帮助。

替换

        $.each(links, function() {
            $('#result').append('<p>' + links.html() + '</p>');
$。每个(链接、函数(){
$(“#结果”).append(“”+links.html()+”

”);

链接。每个(函数(){
$('#result').append(''+$(this.html()+'

');
或者干脆

$('a').each(function() {
     $('#result').append('<p>' + $(this).html() + '</p>');
});
$('a')。每个(函数(){
$('#result').append(''+$(this.html()+'

'); });
您没有使用迭代项,应该使用而不是迭代jQuery集合

另一个更直接的解决方案(通常是代价高昂的Oparion)是:

$('#result').html(
  $('a').map(function(){return '<p>'+this.innerHTML+'</p>'}).get().join('')
);
$('#结果').html(
$('a').map(函数(){return''+this.innerHTML+'

'}).get().join(“”) );
中。您调用的每个
函数
links.html()
,它只获取集合中第一个元素的html。您的意思是使用
$(this.html()
(可能)

顺便说一句,您可以将其重写为仅使用
.html
方法本身进行追加:

$("a").html(function (_, html) {
    $("#result").append("<p>" + html + "</p>");
});
$(“a”).html(函数(\ux,html){
$(“#结果”)。追加(“”+html+”

”); });

当有疑问时,让事情变得简单。你可以这样做,而不需要jQuery$。每条语句。我不是100%,但我认为它被错误地使用了

而不是美元。每个人都可以试试这个

for (var i = 0; i < links.length; i++){
   var linkHtml = links[i].html();
   $('#result').append('<p>' + linksHtml + '</p>');  
}
for(var i=0;i”);
}

希望这对你有所帮助。试试这个。你需要在链接上迭代,所以使用链接。每个链接都可以在这里看到fiddle

$(函数(){
$('#getResult')。单击(函数(){
变量链接=$('a');
links.each(函数(){
$('#result').append(''+$(this.html()+'

'); }); });//结束单击 })//结束准备就绪
哦,是的,就是这样。谢谢^^
$('#result').html(
  $('a').map(function(){return '<p>'+this.innerHTML+'</p>'}).get().join('')
);
$("a").html(function (_, html) {
    $("#result").append("<p>" + html + "</p>");
});
for (var i = 0; i < links.length; i++){
   var linkHtml = links[i].html();
   $('#result').append('<p>' + linksHtml + '</p>');  
}
$(function() {
        $('#getResult').click(function() {
             var links = $('a');
            links.each(function(){
                $('#result').append('<p>' + $(this).html() + '</p>');
            });

        }); // end click
    }); // end ready