如何通过 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));
我正在尝试通过 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));