【问题标题】:jQuery Append/Remove - appends, but no removejQuery Append/Remove - 追加,但不移除
【发布时间】:2011-11-23 02:31:26
【问题描述】:
   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>');
        }
        });

我似乎无法让它工作。

我有一个表单,其中所有元素最初都设置为 required 并带有红色星号。 (第一个函数)。

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

但它似乎根本没有触发。

有什么见解吗?

谢谢。

【问题讨论】:

    标签: jquery append


    【解决方案1】:

    这里是Fiddle

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

    Remove 需要一个选择器而不是 HTML,如果您将内容更改为包含所需的类,这可能会解决您的问题。

    【讨论】:

    • 我也有过,不幸的是无法正常工作。我很快就会发布一个小提琴。
    • 如果您查看 Fiddle,它是您正在尝试做的一个工作示例。你有什么我没有的?检查拼写,确保正确引用所有内容。
    • 由于奇怪的冲突,该函数没有触发 - 只需要添加一个准备好的文档。感谢您的帮助。
    【解决方案2】:

    Jose Vega 是完全正确的,但我可能会补充一点,您应该考虑使用附加/分离,尤其是在这种情况下,您可能需要重新附加元素。它基本上意味着该元素被“移除”,但没有“销毁”,因此您可以随意重新插入它,而无需重新生成它。

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

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

    【讨论】:

    • 您的意思是附加/分离吗?我不确定是否有 attach 方法。
    • 是的,是的,append()。代表我放屁。 :)
    【解决方案3】:

    已编辑:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 1970-01-01
      • 2016-08-17
      • 2013-03-02
      • 2014-12-12
      • 2010-12-02
      • 2013-10-06
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多