如何使用jQuery获取元素的文本兄弟?

时间:2016-08-30 17:33:41

标签: javascript jquery html text

我正在抓一个网站,我发现了这个

<table>
  <tr>
    <td>
      <b>Status:</b>ACTIVE;
      <b>Type:</b>CN - CONSTRUCTION
      <b>Added:</b>02/24/2012
    </td>
  </tr>
</table>

如何单独获取statustypeadded

我知道我会得到投票,因为我没有发布任何试用的代码......但我似乎无法想到要尝试的东西!

这个网站有糟糕的HTML结构,我似乎无法找到任何方式。

2 个答案:

答案 0 :(得分:2)

  • 使用jQueryElement.text()抓取所有文字。
  • 使用String#spplit拆分字符串

var text = $('#content').text();
var split = text.trim().split('\n');
split.forEach(function(el) {
  var splitAgain = el.split(':');
  console.log("Key:  " + splitAgain[0].trim() + "   Value:  " + splitAgain[1].trim());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
  <tr>
    <td id="content">
      <b>Status:</b>ACTIVE;
      <b>Type:</b>CN - CONSTRUCTION
      <b>Added:</b>02/24/2012
    </td>
  </tr>
</table>

答案 1 :(得分:1)

Javascript nextSibling属性获取元素的下一个文本兄弟。您可以在b中选择td元素并获取其下一个文字。

&#13;
&#13;
$("td > b").each(function(){	
    console.log(this.innerText +" = "+ this.nextSibling.nodeValue.trim());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <b>Status:</b>ACTIVE;
      <b>Type:</b>CN - CONSTRUCTION
      <b>Added:</b>02/24/2012
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;