这是失败的。我对trim
的使用是否有效?跨度位于表格行内。
var x = document.getElementById('myRow');
var r = x.getElementsByTagName('span')[1].innerText;
if(r.trim() == ""){
alert("on if")
}
HTML
<tr id="header">
<td><span>The Header</span></td>
</tr>
<tr id="myRow">
<td><span>Sample</span></td>
<td><span></span></td>
</tr>
答案 0 :(得分:1)
trim()
可以在任何字符串上调用,包括innerText
,因为它返回一个字符串。
由于一些不同的原因,您提供的代码可能会失败。您必须确保document.getElementById('myRow')
实际返回一个元素,并且x.getElementsByTagName('span')
也返回至少两个元素,因为您试图获取该数组中返回的第二个元素的innerText
通过指定索引为1。
答案 1 :(得分:0)
如果加上正确的html
,你的代码就可以了示例HTMl:
<table>
<tr id="header">
<td><span>The Header</span></td>
</tr>
<tr id="myRow">
<td><span>Sample</span></td>
<td><span></span></td>
</tr>
</table>
<强>的jsfiddle:强>
https://jsfiddle.net/vfhogegd/4/
注意
数组从索引0开始
你的意思是指第一个跨度吗?如果是这样,您需要使用[0]
代替[1]
<强>更新强>
根据您的HTML,问题在于您没有<table>
代码...
如果查看控制台,您可能会看到以下错误:
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
如果您的<table>
标签周围没有<td>
个标签,则它是无效的html,大多数浏览器会忽略您的标签,这就是为什么您的getElementByID
没有返回导致你的其余功能都失败了