循环遍历JQuery中的跨度组

时间:2011-06-21 15:03:39

标签: jquery html

<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}}元素。

4 个答案:

答案 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();
});

从技术上讲,spantd之外的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());
});

示例: http://jsfiddle.net/vqs38/