获取多个元素的内部HTML

时间:2012-02-20 06:46:06

标签: javascript jquery

我想获得多个Spans的内容。这是我的代码:

http://jsfiddle.net/4XumV/

它应该给我“111,222,333,444”。它给了我“未定义”。

我的代码出了什么问题?

8 个答案:

答案 0 :(得分:3)

好吧,你实际上并没有获得innerHTML属性,而是获得了一个未定义的html属性。将其更改为innerHTML即可。

http://jsfiddle.net/4XumV/1/

答案 1 :(得分:1)

您似乎将jquery的htmlinnerHTML混为一谈。

您可以使用innerHTML

http://jsfiddle.net/4XumV/3/

alert(allLatestNews[i].innerHTML);

或jquery的html

http://jsfiddle.net/4XumV/5/

alert(allLatestNews.eq(i).html());

答案 2 :(得分:1)

这应该有效:

$(function()
{
    var allLatestNews = $("#main").find('span');
    $.each(allLatestNews, function(i,val){
        alert($(val).text());
    });
});

我想知道为什么你的代码不起作用而JQuery确实从选择器返回一个元素数组,这可能也有效:

for(var i = 0; i < allLatestNews.length; i++)
{
    alert($(allLatestNews[i]).text());
}

首先将元素包装为JQuery对象,然后查询text()而不是html,这是由函数而不是属性访问的。

您的更新小提琴:http://jsfiddle.net/4XumV/9/

答案 3 :(得分:1)

试试这个应该有效

     allLatestNews.each(function()
     {
      alert($(this).html());
     });

答案 4 :(得分:0)

这是有效的

var allLatestNews = $("#main").find('span');

    $.each(allLatestNews ,function( index , value){
    console.log($(value).html());
    });

代替console.log($(value).html());,您可以撰写alert($(value).html());

答案 5 :(得分:0)

返回内部HTML的DOM元素的属性名为innerHTML,而不是html

allLatestNews[i].innerHTML 

或使用jQuery

$(allLatestNews[i]).html()

Updated JS Fiddle

答案 6 :(得分:0)

您也可以使用此

    var allLatestNews = $(this).find("#main span");

    for(var i = 0; i < allLatestNews.length; i++)
    {
        alert(allLatestNews[i].innerHTML);
    }

答案 7 :(得分:-1)

var $elms = $('#main').find('span');
$elms.each(function(){ alert($(this).text()); });

http://jsfiddle.net/4XumV/2/