从父级获取类名的一部分并应用于子JQuery

时间:2011-03-13 20:23:18

标签: javascript jquery regex parsing pattern-matching

我有以下 HTML

<tr class="wiring_details_6-48">
    <td colspan="2"> Wire Type:
        <select name="select_wire_6" onchange="Estimate.select_wire( 6, this.value, 0 );">
            <option value="" selected="">Select wire..</option>
            <option value="1">14/2</option>
            <option value="2">14/4</option>
            <option value="3">16/4</option>
            <option value="4">16/2</option>
            <option value="5">RG6</option>
            <option value="6">CAT5</option>
            <option value="7">RG59</option>
            <option value="8">LVT</option>
            <option value="9">CAT6</option>
            <option value="10">HDMI</option>
            <option value="11">Shielded CAT6</option>
        </select> </td>
    <td colspan="2">Length:
        <input type="text" class="id_wire_length_6" name="wire_length_6" value="0"></td>
    <td colspan="2">Retail Price:
        <input type="text" class="id_wire_retail_6" name="wire_retail_6" value="0"> </td>
    <td colspan="2">
        <input type="hidden" id="wire_id_6" name="wire_id_6" value="0"> </td>
</tr>

我想确保input - id_wire_lengthid_wire_retail与其父tr相关,这可以通过part-id来证明在此示例中,6以及wiring_detailsid_wire_length中的数字为id_wire_retail

我拥有的 JS 是:

$('input[class^="id_wire_retail"]').each(function() {
    parts_cents_total += (Money.dollars_to_cents($(this).val()) * $('input[class^="id_wire_length"]').val());
});

以上内容与id_wire_detail部分以及id_wire_length匹配 - 但我如何确保它与其父级相关,

所以我想它归结为:

如何获取父tr的部件号(6),然后确保上述JS仅匹配其中包含tr部件号的输入元素?

1 个答案:

答案 0 :(得分:2)

而不是:

$('input[class^="id_wire_length"]').val()

...试试这个:

$(this).closest('tr').find('input[class^="id_wire_length"]').val()

这将确保您选择的值是同一<tr>内部的值。假设HTML结构与您上面发布的一样,您不必担心按部件号进行匹配。