如何使用js获取所有标题标记值

时间:2017-05-13 06:44:43

标签: javascript

我正在尝试使用js获取html页面中所有h标签的文本内容。 但是当特定的h标记不存在时,我的代码就会停止工作。如果h标签没有退出,我就无法编写if语句测试。

我的HTML:

<h1> <a href="" >just a link </a>HTML testing File</h1>
<h2>Another text</h2>
<h4>An h4 text</h4>

我的js:

window.onload = word;
function word () {

var h=["h1","h2","h3","h4","h5","h6"];
var headings = [];
for (var i =0; i<h.length ;i++)
{


    if (document.getElementsByTagName(h[i]))
{
    headings[i] = document.querySelector(h[i]).textContent;
  alert(headings[i] );

}
else

{ alert(h[i]+"doesn't exist");
    }

}

}

任何帮助,thx

3 个答案:

答案 0 :(得分:1)

申请条件以验证heading[i]。像这样

if(headings[i]){
      console.log(headings[i].textContent);
      }

&#13;
&#13;
window.onload = word;

function word() {
  var h = ["h1", "h2", "h3", "h4", "h5", "h6"];
  var headings = [];
  for (var i = 0; i < h.length; i++) {
    if (document.getElementsByTagName(h[i])) {
      headings[i] = document.querySelector(h[i]);
      if (headings[i]) {
        console.log(headings[i].textContent);
      }
    } else {
      alert(h[i] + "doesn't exist");
    }
  }
}
&#13;
<h1> <a href="">just a link </a>HTML testing File</h1>
<h2>Another text</h2>
<h4>An h4 text</h4>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

if条件始终返回true

if (document.getElementsByTagName(h[i]))

getElementsByTagName()返回一个数组。如果没有出现,它将返回一个空数组,if ([])true

将其更改为

if (document.getElementsByTagName(h[i]).length > 0)

答案 2 :(得分:-1)

如果你使用jquery,你可以使用下面的代码

 $("h1, h2, h3, h4, h5, h6").each(function() {
  alert($(this).text());
});