删除多个字段和标签

Removal of multiple fields and labels

本文关键字:标签 字段 删除      更新时间:2023-09-26

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

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

如果你看到你的代码中的summon_link变量给它一个id而不是像在summon_search变量

<>之前 name=summon_link change it to id='summon_link'

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

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

您应该在引号中给出for=的值。

EDIT:删除多余的<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();