删除多个字段和标签

时间:2011-12-22 13:04:58

标签: javascript jquery

我对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");

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

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();

任何反馈都非常赞赏。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果你看到你的代码,那么summon_link变量会给它一个id而不是像summon_search变量那样的名字


 name=summon_link change it to id='summon_link' 

答案 2 :(得分:0)

如果您打算在ID为'jstor_selection'的对象之后添加这些HTML字符串,则可以像这样使用

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

答案 3 :(得分: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();

也在你给出的suman_link输入元素name

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

将此更改为

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

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

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