必须与父母一起捕捉前因元素

时间:2014-04-02 16:43:31

标签: jquery parents

我的HTML:

<dl class="last">
    <dt><label>Medidas</label></dt>
    <dd class="last">
        <div class="input-box">
            <input type="text" value="" name="options[22]" class="input-text  product-custom-option" id="options_22_text" onchange="opConfig.reloadPrice()">
        </div>
    </dd>
</dl>

我有id options_22_text作为参考,我需要在dl上添加一个类。

有人可以帮助我吗?

我希望结果是:

<dl class="last myClass">
    <dt><label>Medidas</label></dt>
    <dd class="last">
        <div class="input-box">
            <input type="text" value="" name="options[22]" class="input-text  product-custom-option" id="options_22_text" onchange="opConfig.reloadPrice()">
        </div>
    </dd>
</dl>

3 个答案:

答案 0 :(得分:1)

您可以使用 .closest()

  

对于集合中的每个元素,获取与之匹配的第一个元素   选择器通过测试元素本身并遍历其中   DOM树中的祖先。

$('#options_22_text').closest('dl').addClass('myClass');

答案 1 :(得分:0)

应该有效:

$('#options_22_text').parents('dl.last').addClass('myClass');

如果上述方法无效,请删除dl并仅保留.last(班级名称)。

考虑这是否是嵌套的,这意味着将会有更多last个类,所有这些类都将被找到。在这种情况下你可以这样做:

$('#options_22_text').closest('dl').addClass('myClass');

// or if you want something a bit faster / more specific 

$('#options_22_text').parent().parent().parent().addClass('myClass');

答案 2 :(得分:0)

使用closest()转到祖先标记dl

<强> Live Demo

$('#options_22_text').closest('dl').addClass('myClass');