代码之家  ›  专栏  ›  技术社区  ›  john Gu

无法使用jquery获取输入元素的第二个父级

  •  -2
  • john Gu  · 技术社区  · 7 年前

    我的Web应用程序中有以下标记,其中有一个输入元素,现在我想将下面的文本范围从“-”更改为其他内容。

    下面是标记:

    <span dir="none">
        <table id="OrderQuickOrder_a91a0ce2-7fb6-4c9c-97f5-e851cf4f10a6_MultiChoiceTable" cellspacing="1" cellpadding="0">
            <tbody>
             <tr>
                <td>
                <span class="ms-RadioText" title="Yes">
                <input id="OrderQuickOrder_****_MultiChoiceOption_0" type="checkbox">
                <label for="OrderQuickOrder_**_MultiChoiceOption_0">Yes</label>
                </span>
                </td>
            </tr>
            </tbody>
        </table>
    </span>
    <span class="ms-metadata">-</span>
    

    这是我的jquery选择器:

    $('input[id^="OrderQuickOrder_"]').parent('span').parent('span').nextAll('span').after('<a id="dialogtrigger" href="/*****" target="_blank">Items Order</a>' );
    

    但是上面的代码没有改变任何东西。我认为 .parent('span').parent('span') 无法选择输入元素的直接父跨度的父跨度…

    1 回复  |  直到 7 年前
        1
  •  1
  •   Keith    7 年前

    使用parents()获取所选内容:

    https://jsfiddle.net/fLb89q4p/

    $('input[id^="OrderQuickOrder_"]').parents()
         .nextAll('span')
         .after('<a id="dialogtrigger" href="/*****" target="_blank">Items Eligable for Quick Order</a>' );
    

    如果要删除文本并插入新文本,请使用:

    $('input[id^="OrderQuickOrder_"]').parents()
         .nextAll('span')
         .text('')
         .after('<a id="dialogtrigger" href="/*****" target="_blank">Items Eligable for Quick Order</a>' );