我正在抓一个网站,我发现了这个
<table>
<tr>
<td>
<b>Status:</b>ACTIVE;
<b>Type:</b>CN - CONSTRUCTION
<b>Added:</b>02/24/2012
</td>
</tr>
</table>
如何单独获取status
,type
和added
?
我知道我会得到投票,因为我没有发布任何试用的代码......但我似乎无法想到要尝试的东西!
这个网站有糟糕的HTML结构,我似乎无法找到任何方式。
答案 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
元素并获取其下一个文字。
$("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;