如何通过 jquery 远程获取每个具有相同 class 名称的元素

How to get every element with the same class name remotely via jquery

我正在尝试通过 Ajax 调用从 here 获取一些数据。我可以在我的控制台中获取整个文档,但我不知道如何获取单个元素。我想要标题和下面的内容。

<script>
    $(function() {
        $.ajax({
            url: 'http://feeds.reuters.com/reuters/technologyNews',
            type: 'GET',
            dataType: 'html',
            success: function(data) {
                console.log(data); //This works
               //How to find titles and content underneath?

                $('itemcontent').each(function() { //This does not work
                    var itemcontent = $(this).text() + '<br>';
                    console.log(itemcontent);
                })
            }
        });
    })
</script>

'itemcontent' 是标题下方的文字。获取这些元素中的文本的正确语法是什么?

更新 我现在可以取回数据,但只能取回一次。我没有正确使用 .each() 或其他语法吗? 最奇怪的部分是它获得了 last 元素,而不是第一个。

$.ajax({
   url: 'http://feeds.reuters.com/reuters/technologyNews',
   type: 'GET',
   dataType: 'html',
  success: function(data) {
      console.log(data);
       $(data).find('.itemcontent').each(function() { //I'm only getting one result back
           var text = $(this).text();
           $('#rss').html('<p>' + text + '</p>');

       })
  }

这是我返回的内容,页面上最后的“.itemcontent”文本:

Sonos Inc, a maker of hi-tech wireless speakers, filed for an initial public offering on Friday, riding on the back of increasing popularity of streaming music through smartphone apps on connected audio systems.

您的问题是您正在寻找标签而不是 class。你需要

$('.itemcontent').each(function() {

您还必须将 url 称为 https 而不是 http。它为我返回了一个错误

问题 1

您需要将返回的数据加载到元素中以像您尝试的那样对其进行处理$(data).find(SELECTOR)

问题2

Each以数组作为第一个参数$.each(array, function(index, element){});

$.ajax({
   url: 'http://feeds.reuters.com/reuters/technologyNews',
   type: 'GET',
   dataType: 'html',
   success: function(data) {
      console.log(data);
      $.each($(data).find('.itemcontent'),function() {
         var text = $(this).text();
         $('#rss').html('<p>' + text + '</p>');
      });
   }
});

问题3

您只是用数组的每次迭代替换 #rss 的内容,这只会导致最后一个结果出现在元素中。如果你想要它们,你应该 appending 个元素到 #rss。例如,$("#rss").append($("<p>").html(text));