2017-06-03 26 views
0

我想通过类名获取内容,但是当我运行脚本时,我得到了未定义的内容......我在做什么错了?按类名获取内容javascript

<!DOCTYPE html> 
<html> 
<body> 

<td class="a-size-base">B000FNFSPY</td> 

<button onclick="myFunction()">Try it</button> 

<script> 
function myFunction() { 

var x = document.getElementsByClassName("a-size-base").innerText; 
    document.write(x) 
} 
</script> 

</body> 
</html> 

回答

1

下面是解:

<!DOCTYPE html> 
<html> 
    <body> 
    <div class="a-size-base">B000FNFSPY</div> 
    <button onclick="myFunction()">Try it</button> 
<script> 
    function myFunction() { 
    var x = document.getElementsByClassName("a-size-base")[0].innerText; 
    document.write(x) 
    } 
</script> 
</body> 
</html> 

当浏览器与td编译然后由于不使用table标签,因此它使得它,因为它是和省略td标签。

0

您误用了<td>标记,它必须放在表格中。 或者它不会通过webkit或大多数浏览器呈现到DOM中。

在Chrome中测试。看,<td>不在那里。

getElementsByTagName返回一个数组。但你第一步出错了,所以它还没有到达。

enter image description here

function myFunction() { 
 
    var x = document.getElementsByClassName("a-size-base"); 
 
    document.write(x); 
 
}
<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<td class="a-size-base">B000FNFSPY</td> 
 

 
<button onclick="myFunction()">Try it</button> 
 

 
</body> 
 
</html>

0

你可以这样说:

<!DOCTYPE html> 
<html> 
<body> 

<div class="a-size-base">B000FNFSPY</div> 

<button onclick="myFunction()">Try it</button> 

<script> 
function myFunction() { 

var x = document.getElementsByClassName("a-size-base"); 
    document.write(x[0].innerHTML) 
} 
</script> 

</body> 
</html> 
0

的getElementsByClassName方法方法返回元素的数组类集合。你应该循环访问它们的innerText。