jQuery追加调用两次

时间:2011-10-21 17:51:14

标签: jquery

我正在尝试在我的页面中向<dd>标记添加注释,但由于某种原因,它会发生两次。这是我要添加的<dd>标记:

<dd>
    <input type="hidden" value="Choose a Country" class="FormFieldChoosePrefix">
    <input type="hidden" value="11" class="FormFieldId">
    <input type="hidden" value="2" class="FormFieldFormId">
    <input type="hidden" value="singleselect" class="FormFieldType">
    <input type="hidden" value="Country" class="FormFieldPrivateId">
        <select size="1" name="FormField[2][11]" id="FormField_11" style="" class="Field200 FormField">
            <option value="">Choose a Country</option>blah blah</select>
-- want code to be added here --
</dd>

我尝试过使用以下内容:

$('dd:contains("Choose a Country").append('whatever');

$('#FormField_11').parent().append('whatever');

$('#FormField_11').parent().first().append('whatever');

甚至

if ($('#FormField_11').parent().html().indexOf('whatever') == -1){
    $('#FormField_11').parent().append('whatever');
}

一切都无济于事 - 每一次,'无论'出现两次。然而,最奇怪的部分是,我在页面后面的另一个<dd>标签上执行相同的操作,并且它完美地运行:

<dd>
    <input type="hidden" value="Choose a Country" class="FormFieldChoosePrefix">
    <input type="hidden" value="21" class="FormFieldId">
    <input type="hidden" value="3" class="FormFieldFormId">
    <input type="hidden" value="singleselect" class="FormFieldType">
    <input type="hidden" value="Country" class="FormFieldPrivateId">
    <select size="1" name="FormField[3][21]" id="FormField_21" style="" class="Field200 FormField">
            <option value="">Choose a Country</option>
            blah blah
        </select>
</dd>

和我的javascript,有效:

$('#FormField_21').parent().append('whatever');

由于

2 个答案:

答案 0 :(得分:2)

这是因为.append()正在$('#FormField_11')而不是.parent()进行评估。

这就是jQuery的工作原理。

要做你想做的事,你可以这样做:

var x = $('#FormField_11').parent();
x.append('whatever');

答案 1 :(得分:0)

我建议您为dd元素提供一个ID,然后按原样附加:

 <dd id="dd1">
     .....

 $("#dd1").append("content");

您可以在最后一个元素之后添加文本(假设它始终具有相同的ID):

 $('#FormField_21').after('<a href="/pages/Contact-Us.html">Please email or contact us for international orders. Thank you</a>');