jQuery追加/删除 - 追加,但不删除

时间:2011-11-22 18:07:49

标签: jquery append

   function addFormReqFields() { // Add * for required fields
        $('form label').each(function(index) {
            if ($(this).hasClass('required')) {
                $(this).append('<span class="required"> *</span>');
            }
        });
    }   

    $('#oh_CountryDrpDwn').change(function(){
        var CountryDrpDwn = $('#oh_CountryDrpDwn').val();
        if (CountryDrpDwn != 'usa')
        {
            $('#oh_ZipLbl').remove('<span class="required"> *</span>');
        }
        });

我似乎无法让它发挥作用。

我有一个表单,其中所有元素最初都设置为需要带有红色星号。 (第一个功能)。

在第二个函数中,我有一个select字段(oh_CountryDrpDwn),当值不等于'usa'时,我想从标签中删除<span class="required"> *</span>

但它似乎根本没有触发。

有什么见解?

感谢。

3 个答案:

答案 0 :(得分:3)

以下是Fiddle

 $('#oh_ZipLbl').find('span.required').remove();

如果您将内容更改为所需的类,则

删除选择器而不是HTML,这可能会解决您的问题。

答案 1 :(得分:1)

Jose Vega是完全正确的,但我可能会补充说你应该考虑使用attach / detach,特别是在这种情况下,你可能需要重新附加元素。它基本上意味着元素被“移除”,但不是“被破坏”,因此您可以随意重新插入它,而不必重新生成它。

$(".required").detach();

在此处阅读删除和分离之间的区别:http://www.bennadel.com/blog/1822-Learning-jQuery-1-4-Remove-vs-Detach-.htm

答案 2 :(得分:0)

编辑:

我最初的想法是需要告诉函数在哪里找到最初附加到的相同元素。

$(this).find('span.required').remove();

但是,我不是专家,所以不能保证这对你来说是一个很好的答案!