我对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();
任何反馈都非常赞赏。
答案 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();