0

我尝试使用此代码获取文本获取此文,但仍然失败。能分析一下是哪里不对吗?

<table class="table  table-bordered" border="1">
<tbody>
<tr>
<td rowspan="2"><div id="foto"><img src="http://a0.twimg.com/profile_images/378800000163861066/61dee118c22e6ddb6fea2ffdb2957bd7_normal.jpeg"></div></td>
<td><div id="tweet31898">**GET THIS TEXT**</div>    
</td>
</tr>
<tr>
<td>
<input type="radio" name="pos31898" value="POS" onclick="addPOS(this.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-success">Pos</span>
<input type="radio" name="pos31898" value="NON" onclick="addNON(this.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-warning">Non</span>
<input type="radio" name="pos31898" value="NEG" onclick="addNEG(this.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-important">Neg</span>
</td>
</tr>
</tbody>
</table>
4

1 回答 1

0

例如看,pos31898没有previousElementSibling,它是其容器中的第一个元素。如果您缩进 HTML,这会更明显:

<table class="table  table-bordered" border="1">
  <tbody>
    <tr>
      <td rowspan="2">
        <div id="foto"><img src="http://a0.twimg.com/profile_images/378800000163861066/61dee118c22e6ddb6fea2ffdb2957bd7_normal.jpeg"></div>
      </td>
      <td>
        <div id="tweet31898">**GET THIS TEXT**</div>
      </td>
    </tr>
    <tr>
      <td>
        <input type="radio" name="pos31898" value="POS" onclick="addPOS(this.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-success">Pos</span>
        <input type="radio" name="pos31898" value="NON" onclick="addNON(this.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-warning">Non</span>
        <input type="radio" name="pos31898" value="NEG" onclick="addNEG(this.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.previousElementSibling.innerHTML+' ');"><span class="label label-important">Neg</span>
      </td>
    </tr>
  </tbody>
</table>

当然,最简单的方法是document.getElementById("tweet31898"),因为. 由于您的单选按钮中包含该数字,因此您可以派生using 。例如:iddivnameidthis.name.replace('pos', 'tweet')

onclick="addPOS(document.getElementById(this.name.replace('pos', 'tweet')).innerHTML + ' ')"

实例| 直播源

但是在结构上这样做,你想parentNode到达td,然后再次到达tr,然后previousElementSibling到达前一个tr,然后lastElementChild向下到达td,然后firstElementChild到达div

onclick="addPOS(this.parentNode.parentNode.previousElementSibling.lastElementChild.firstElementChild.innerHTML + ' ')"

实例| 直播源

于 2013-07-21T06:05:17.707 回答