find()从存储在变量中的HTML中删除直接标记

时间:2015-07-08 05:20:19

标签: javascript jquery html

我有这个HTML

<div id='add_more_edu'>
 <div class='one_exp'>
    --- many INPUT and SELECT elements with disabled attribute
 </div>
</div>

我的页面上有一个Button,点击后会调用一个函数,该函数的代码如下所示。

var edu_contect = $("#add_more_edu").clone().html();

// Line # 2        
edu_contect = $(edu_contect).find("input,select").removeAttr('disabled');

$('.edu_history_div').append(edu_contect);

这些字段已成功停用,但我在.edu_history_div中附加的内容就是这样

<div id='add_more_edu'>

    --- many INPUT and SELECT elements with disabled attribute

</div>

<div class='one_exp'>消失了。

如果我发表评论Line # 2,则<div class='one_exp'>不会消失。

解决方案是什么?

或者

此行的任何替代方案 edu_contect = $(edu_contect).find("input,select").removeAttr('disabled'); ...

我试过了

$(edu_contect).find("input,select").removeAttr('disabled');

<div class='one_exp'>没问题,但Disabledinput

未删除select属性

1 个答案:

答案 0 :(得分:3)

find()上的$(edu_contect)只会返回您输入和选择的匹配元素,这些元素存储在edu_contectedu_contect = ...上。

此外,此处不需要html(),因为append()可以对find()返回的对象执行其他操作,例如.clone()

使用以下

var edu_contect = $("#add_more_edu").clone();
edu_contect.find("input,select").removeAttr('disabled')
$('.edu_history_div').append(edu_contect);

<强> Fiddle Demo