.trim()对innerText有效吗?

时间:2015-05-29 01:55:27

标签: javascript

这是失败的。我对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> 

2 个答案:

答案 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没有返回导致你的其余功能都失败了