使用JavaScript获取元素的连接文本

时间:2014-10-22 18:34:57

标签: javascript html arrays

我用getElementById尝试了它并且它有效。但现在我想要多个div,所以我必须使用类。所以我把方法改为getElementsByClassName,现在它说未定义。

(当选择中的选项发生变化时,将调用该函数。这可以正常工作)

HTML:

 <div class="item_content">
 <h3  class="filmnaam">22 jump street</h3> 
 </div>
 <div class="item_content">
 <h3 class="filmnaam">rio 2</h3>
 </div>

使用Javascript:

function sorting(sortingway) {
  alert(sortingway.value);
  var titelfilms = document.getElementsByClassName("filmnaam");
  var titels = titelfilms.innerHTML;
  console.log(titels[0]);
}

如果没有jQuery,有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

getElementsByClassName返回一个集合,所以循环!

var titelfilms = document.getElementsByClassName("filmnaam");
for (var i = 0; i < titelfilms.length; i++) {
    var titels = titelfilms[i].innerHTML;
    console.log(titels);
}

答案 1 :(得分:0)

titelfilms是一个节点列表,您无法获得整个节点列表的innerHTML,它包含对元素的多个引用,每个元素都有自己的属性。

您可以循环并将每个innerHTML连接到变量上,或者您可以map()将返回的元素的innerHTML添加到数组中,然后join()将它们添加到:

&#13;
&#13;
function sorting(sortingway) {
    var titelfilms = document.getElementsByClassName("filmnaam");
    var titels = Array.prototype.map.call(titelfilms, function (el) {
        return el.innerHTML;
    }).join(' ');
    console.log(titels);
}

sorting();
&#13;
<div class="item_content">
     <h3 class="filmnaam">22 jump street</h3> 
</div>
<div class="item_content">
     <h3 class="filmnaam">rio 2</h3>
</div>
&#13;
&#13;
&#13;