我正在尝试使用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
答案 0 :(得分:1)
申请条件以验证heading[i]
。像这样
if(headings[i]){
console.log(headings[i].textContent);
}
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;
答案 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());
});