<td style="display:none;">
<span class="runId">4</span><span class="processName">Get End-Of-Day Reuters Feed Rates</span>
<span class="runId">130</span><span class="processName">Get End-Of-Day Bloomberg Feed Rates</span>
<span class="runId">133</span><span class="processName">CapVolsCalibration AllCurrencies EOD</span>
<span class="runId">228</span><span class="processName">GBP Basis Adjustment</span>
</td>
嘿伙计们,我将如何遍历JQuery中的<td>
以及每两个span
元素组,获取text()
和{runId
1}}元素。
答案 0 :(得分:2)
$("span.runId").each(function(){
var runId = $(this).text(),
processname = $(this).next("span.processName").text();
});
答案 1 :(得分:2)
拯救的功能性编程:
var data = $td.children('span.runId').map(function() {
return {runId: $(this).text(), processName: $(this).next().text()};
}).get();
根据您的需要构建数据。
答案 2 :(得分:1)
说实话,我建议如果他们有这种类型的相关性,他们将它们包装在另一个标签中,或者更好,但它们甚至没有显示。当然,这不适用于解析您没有写入/修改访问权限的代码。
建议的HTML:
<table>
<tr>
<td style="display:none;">
<span data-runid='4' class="processName">Get End-Of-Day Reuters Feed Rates</span>
<span data-runid='130' class="processName">Get End-Of-Day Bloomberg Feed Rates</span>
<span data-runid='133' class="processName">CapVolsCalibration AllCurrencies EOD</span>
<span data-runid='228' class="processName">GBP Basis Adjustment</span>
</td>
</tr>
</table>
jQuery的:
$("td span.processName").each(function() {
var runid, processName, $this = $(this);
runid = $this.data('runid');
processName = $this.text();
});
我不确定你的需求是什么,但我甚至也摆脱了班级processName
。由于数据未显示,因此在此级别并不真正需要,因为您不需要为其他目的访问它。这最小化到:
HTML:
<table id='someId'>
<tr>
<td style="display:none;">
<span data-runid='4'>Get End-Of-Day Reuters Feed Rates</span>
<span data-runid='130'>Get End-Of-Day Bloomberg Feed Rates</span>
<span data-runid='133'>CapVolsCalibration AllCurrencies EOD</span>
<span data-runid='228'>GBP Basis Adjustment</span>
</td>
</tr>
</table>
jQuery的:
$("#someId").find('td span').each(function() {
var runid, processName, $this = $(this);
runId = $this.data('runid');
processName = $this.text();
});
从技术上讲,span
中td
之外的table
不能超出$("#someId").find('span').each(function() {
var runid, processName, $this = $(this);
runId = $this.data('runid');
processName = $this.text();
});
,因此可以进一步减少:
{{1}}
答案 3 :(得分:0)
使用jQuery做很多事情的方法:
$('td > span:nth-child(2n-1)').text(function(i,txt) {
alert(txt + $(this).next().text());
});