我的代码有问题.我想使用Javascript获取具有样式颜色silver的b标签.我尝试使用tagName ==="B",但它没有用.我认为B标签不是rowData类的子标签.
<tr class="rowData">
<td style="padding: 0pt;">
<table><tr>
<td>
<b style="font-size: 15px; color: silver;">Mugging</b>
<br />Payout: <b style="color: green;">$200 - $300</b>
<br />Experience: +1 </td>
<td style="text-align: right;">
</td>
</tr></table>
</td>
<td style="padding: 0pt;">
<table><tr>
<td style="width: 100px;">
<b style="color: gray;">Required:</b>
<br />Energy: 1 </td>
<td style="">
</td>
</tr></table>
</td>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我删除了它的一部分..
以下是Javascript代码的一部分:
var jobs = {};
jobs.scan = function() {
var tagHolder = {};
var availJobs = {};
var jobContents = dom.get("app8743457343_content");
var rData = dom.getElementsByClass("rowData", jobContents, "tr");
for(var i = 0; i < rData.length; i++) {
var rChildren = rData[i].childNodes;
for(var j=0; j<rChildren.length; j++) {
if(rChildren[j].tagName === 'B') {
alert(rChildren[j]);
}
}
}
}
jobs.scan();
Run Code Online (Sandbox Code Playgroud)
当我启动脚本时,它没有提醒或响应.也许我需要使用喜欢nextSibling的东西?请帮我解决这个问题..我想要b款式银色.Mugging文本
你可以打好这场斗争,并试图让所有浏览器的怪异工作....
或者,你可以尝试jQuery!这很有趣也很容易,所有很酷的孩子都在这样做!
var text = $('tr.rowData').find('b').filter(function() {
return $(this).css('color') == 'silver';
}).text();
alert(text);
Run Code Online (Sandbox Code Playgroud)
田田!
编辑:严肃地说,如果你想在原始的javascript中这样做,这对我在IE和Firefox上有用:
var text;
var bs = document.getElementsByTagName("b");
for(var x = 0; x < bs.length; x++) {
if(bs[x].style.color == 'silver') {
text = bs[x].innerHTML;
break;
}
}
alert(text);
Run Code Online (Sandbox Code Playgroud)
它只是抓住文档中的所有粗体元素,并检查哪一个具有银色.显然,这不是超级高效的,我不确定你的用例.我确实在您的代码中看到您首先获取对jobContents元素的引用.我不知道它来自哪里,因为你没有发布标记的那一部分,但如果<b>最终会在这个元素中,你可以改变这一行:
var bs = document.getElementsByTagName("b");
Run Code Online (Sandbox Code Playgroud)
对此:
var bs = jobContents.getElementsByTagName("b");
Run Code Online (Sandbox Code Playgroud)
然后1)加快速度,2)确保你得到你想要的东西.
祝好运.
| 归档时间: |
|
| 查看次数: |
4091 次 |
| 最近记录: |