Javascript:检索li中存在的标签内容

时间:2013-08-08 06:06:11

标签: javascript

我是javascript的新手,我无法解决以下问题 我的代码是:

<ul>
    <li>
        <label name = "mv"> Movie1 </label>
        <label name = "sn"> Song1 </label>
        <label name = "ac"> Actor1 </label>
    </li>
    <li>
        <label name = "mv"> Movie2 </label>
        <label name = "sn"> Song2 </label>
        <label name = "ac"> Actor2 </label>
    </li>
</ul>

我想在第一次迭代中以相同的方式检索movie1 song1和actor1。 有人请帮忙。 感谢

4 个答案:

答案 0 :(得分:2)

简单:

function getData(){
    var result=[];
    var lis=document.getElementsByTagName('li');
    for(var k=0;k<lis.length;k++){
        for(var j=0;j<lis[k].childNodes.length;j++){
            result[k][j]=lis[k].childNodes[j].innerHTML;
        }
    }
    return result;
}

它将返回一个数组,数组的每个元素都是另一个数组,该数组的每个元素都是标签的值。例如,它可能会返回:

[
    [
        'Great Gatsby',
        'Counting Stars',
        'Lio Decaprio'
    ],
    [
        'Argo',
        'Bangarang',
        'Johnny Depp'
    ]
]

答案 1 :(得分:1)

var labels=document.getElementsByTagName("label");
var set=labels.length/3;
var myAry=[];

for(var i=0;i<set;i++){
 var str="";
   for(var j=(i*3);j<(i+1)*3;j++){ 
       str+=labels[j].innerHTML;
   }

 myAry.push(str); // myAry[0]= movie1 song1 actor1, myAry[1]=movie1 song1 actor1
} 

http://jsfiddle.net/wsfFh/

答案 2 :(得分:0)

WORKING DEMO

a=document.getElementsByTagName("ul");
console.log(a[0].childNodes[1].innerText);

这将为您提供您想要的。 如果您想要第二个列表,请使用以下

console.log(a[0].childNodes[3].innerText);

编辑 :不知何故,Firefox没有采用.innerText属性。另一种方法是使用

  

.textContent

跨浏览器兼容。在IE,Chrome,FF中测试

FIDDLE

答案 3 :(得分:-1)

使用jQuery

更容易
$("li").each(function(){
    var text = "";
    $(this).children().each(function(){
        text += " " + $(this).text() 
    });
    console.log(text)
});