javascript
  • jquery
  • 2011-12-22 29 views 2 likes 
    2

    我对jQuery非常陌生,并被特殊问题困扰。我使用下面的代码动态添加2个复选框字段的屏幕形式:删除多个字段和标签

    var summon_search = "<br><br><br><label for='summon_search'>Search this resource from compatible products*</label><input type='checkbox' id='summon_search' >"; 
    var summon_link = "<br><br><label for='summon_link'>Link direct from content items in compatible products*</label><input type='checkbox' name='summon_link'>"; 
    $(summon_search+summon_link).insertAfter("#jstor_selection"); 
    

    不过,我取得了有限的成功时,我想删除这些字段和标签(这依赖于另外一个值),并取代它们新领域。下面的代码显示了我迄今为止的最佳尝试。它似乎删除标签和第一个字段,但由于某种原因,最后一个字段仍然存在。有人能告诉我们他们是否可以发现我做错了什么,或者提供一个更好的例子来处理这个问题?

    if ($("#summon_search").length > 0) { 
        //Removal of Label and Field (Attempted) 
        $("label[for=summon_search]").remove(); 
        $("label[for=summon_link]").remove(); 
        $("#summon_search").remove(); 
        $("#summon_link").remove(); 
    

    任何反馈非常感谢。

    回答

    0

    name='summon_link'更改为id='summon_link',因为#summon_link需要一个id。

    0

    ,如果你看到你的代码summon_link变量给它一个ID,而不是名称,如在summon_search可变

     
    
    name=summon_link change it to id='summon_link' 
     
    
    0

    ,如果你有意与ID为“jstor_selection”对象之后,再添加这些HTML字符串,可以像这样使用

    $("#jstor_selection").append(summon_search+summon_link); 
    
    0

    您应该给报价中的for=值。

    编辑:删除多余的<br>,通常,建议不要使用<br>

    $("label[for='summon_search']").prev('br').remove() 
    $("label[for='summon_link']").prev('br').remove() 
    

    $("label[for='summon_search']").remove(); 
    $("label[for='summon_link']").remove(); 
    

    也已给出name

    <input type='checkbox' name='summon_link'> 
    

    的suman_link输入元素或者将其更改为

    <input type='checkbox' id='summon_link'/> 
    

    $("#summon_link").remove(); 
    

    $("input[name='summon_link']").remove(); 
    
    +0

    感谢大家的有用的信息 - 一切似乎是现在的工作 - 只有轻微的问题我已经是当我删除的元素 - 空间留在页面上 - 无论如何,当字段被删除时拉起现有的表单?但非常感谢你们所有 – 2011-12-22 13:22:04

    +0

    那是因为你有很多
    之前的标签。 ('br')。remove()和$(“label [for ='summon_link']”)。prev('br')可以通过删除$(“label [for ='summon_search']” ).remove()在执行$(“label [for ='summon_search']”)。remove()和$(“label [for ='summon_link']”)。)。remove()...更新代码 – 2011-12-22 14:17:44

    +0

    更好的是首先不要(错误地)使用'
    '。 – RoToRa 2011-12-22 14:57:32

    相关问题