代码之家  ›  专栏  ›  技术社区  ›  BobbyJones

如何使用jQuery选择相邻的表单元格

  •  0
  • BobbyJones  · 技术社区  · 7 年前

    我真的需要你的帮助,

    如何从选择框中选择相邻的表格单元格并插入一些文本?

    下面的代码似乎没有像我想象的那样工作,从类名为的引用点开始。选择box,也许有更好的方法,所以我愿意接受建议。

    $('#fin-code-alot').closest('.selectbox').next().html('test')
    

    以下是层次结构/标记:

    <table>
        <tr>
            <td>Allotment:</td>
            <td>
                <div class="selectbox">
                    <div class="selectric-selectbox">
                    <select id="fin-code-alot" class="custom-options">
                        <option value="">&nbsp;</option>
                        <option value="120">120</option>
                        <option value="12D">12D</option>            
                    </select>
                    </div>
                </div>
            </td>
            <td>Put Some Text Here</td>
            <td></td>
        </tr>
    </table>
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   connexo    7 年前

    .selectbox 没有 next() ,您需要使用 closest('td') :

    $('#fin-code-alot').closest('td').next().text('test')
    
        2
  •  0
  •   rink.attendant.6    7 年前

    您的代码仅选择 <div class="selectbox"> 元素,它没有下一个同级。

    您需要选择 closest 表格单元格及其 next 兄弟姐妹:

    $('#fin-code-alot').closest('td').next('td').text('test')
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
        <tr>
            <td>Allotment:</td>
            <td>
                <div class="selectbox">
                    <div class="selectric-selectbox">
                    <select id="fin-code-alot" class="custom-options">
                        <option value="">&nbsp;</option>
                        <option value="120">120</option>
                        <option value="12D">12D</option>            
                    </select>
                    </div>
                </div>
            </td>
            <td>Put Some Text Here</td>
            <td></td>
        </tr>
    </table>

    此外,我建议使用更安全的 .text() 方法,如果仅插入文本,而不是 .html() . 当然,如果需要插入HTML内容,则需要使用后者。