Jquery 如何为动态创建的输入赋值
我试图更新一个输入字段的值,该字段是动态创建的DOM的一部分,但没有成功。 有人能告诉我我做错了什么吗。谢谢 HTMLJquery 如何为动态创建的输入赋值,jquery,dom,Jquery,Dom,我试图更新一个输入字段的值,该字段是动态创建的DOM的一部分,但没有成功。 有人能告诉我我做错了什么吗。谢谢 HTML <div class="hidden-institution-form hide"> <form class="form-horizontal forms" role="form"> <input type="text" id="code"> </form> </div> JQUER
<div class="hidden-institution-form hide">
<form class="form-horizontal forms" role="form">
<input type="text" id="code">
</form>
</div>
JQUERY
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" id="institution-form"/>').append($(".hidden-institution-form").clone());
//Remove the hide class
$(frm).find(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$(frm).find(".hidden-institution-form").removeClass("hidden-institution-form").addClass("instutition");
//Locate the input field #code and change it value
$("#institution-form").find("#code").val('some value'); //This does not work
//创建一个空Div并克隆其中.hidden institution form的内容
var frm=$('').append($(“.hidden institution form”).clone();
//删除隐藏类
$(frm).find(“.hidden institution form”).removeClass(“hide”);
//用.instution替换.hidden institution表单
$(frm).find(“.hidden institution form”).removeClass(“hidden institution form”).addClass(“institution”);
//找到输入字段#代码并更改其值
$(“#机构表单”).find(#code”).val('some value')//这行不通
有人能告诉我我做错了什么吗
您没有将创建的元素添加到DOM中
frm
元素只是在本地范围内创建的,而$(“#机构表单”)
在DOM中搜索元素
有人能告诉我我做错了什么吗
您没有将创建的元素添加到DOM中
frm
元素只是在本地范围内创建的,而$(“#机构表单”)
在DOM中搜索元素删除类隐藏机构表单后,只添加类“机构”,因此以下代码应该可以工作:
更新:在一些拼写错误中,您使用的方法已关闭。试试这个:
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" id="institution-form"/>').append($(".hidden-institution-form").clone());
//Remove the hide class
$(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$(".hidden-institution-form").removeClass("hidden-institution-form").addClass("institution");
//Locate the input field #code and change it value
$(".institution").find("#code").val('some value'); //This does not work
//创建一个空Div并克隆其中.hidden institution form的内容
var frm=$('').append($(“.hidden institution form”).clone();
//删除隐藏类
$(“.hidden institution form”).removeClass(“hide”);
//用.instution替换.hidden institution表单
$(.hidden institution form”).removeClass(“hidden institution form”).addClass(“institution”);
//找到输入字段#代码并更改其值
$(“.institution”).find(#code”).val('some value')//这行不通
jsiddle:删除类隐藏机构表单后,只添加类“institution”,因此以下代码应该可以工作: 更新:在一些拼写错误中,您使用的方法已关闭。试试这个:
//Create an empty Div and clone the content of .hidden-institution-form in it
var frm = $('<div class="institution-form" id="institution-form"/>').append($(".hidden-institution-form").clone());
//Remove the hide class
$(".hidden-institution-form").removeClass("hide");
//Replace .hidden-institution-form with .instutition
$(".hidden-institution-form").removeClass("hidden-institution-form").addClass("institution");
//Locate the input field #code and change it value
$(".institution").find("#code").val('some value'); //This does not work
//创建一个空Div并克隆其中.hidden institution form的内容
var frm=$('').append($(“.hidden institution form”).clone();
//删除隐藏类
$(“.hidden institution form”).removeClass(“hide”);
//用.instution替换.hidden institution表单
$(.hidden institution form”).removeClass(“hidden institution form”).addClass(“institution”);
//找到输入字段#代码并更改其值
$(“.institution”).find(#code”).val('some value')//这行不通
jsfdle:主要问题是您没有将新创建的元素添加到dom中。因此,当您执行id选择器
#institution form
时,它将无法找到新元素
我看到的另一个问题是,如果创建此块的多个实例,将有多个id为institution form
的元素,这将导致在查找正确的元素以设置值时出现问题
因此,在克隆或创建一个元素的多个指令的地方,请使用Calss insted So
<div class="hidden-institution-form hide">
<form class="form-horizontal forms" role="form">
<input type="text" class="code"/>
</form>
</div>
然后
//创建一个空Div并克隆其中.hidden institution form的内容
var frm=$('').append($(“.hidden institution form”).clone();
//删除隐藏类
$frm.find(“.hidden institution form”).removeClass(“hide”);
//用.instution替换.hidden institution表单
$frm.find(“.hidden institution form”).removeClass(“hidden institution form”).addClass(“institution”);
//找到输入字段#代码并更改其值
frm.find(“.code”).val('some value')//这行不通
主要问题是没有将新创建的元素添加到dom中。因此,当您执行id选择器#institution form
时,它将无法找到新元素
我看到的另一个问题是,如果创建此块的多个实例,将有多个id为institution form
的元素,这将导致在查找正确的元素以设置值时出现问题
因此,在克隆或创建一个元素的多个指令的地方,请使用Calss insted So
<div class="hidden-institution-form hide">
<form class="form-horizontal forms" role="form">
<input type="text" class="code"/>
</form>
</div>
然后
//创建一个空Div并克隆其中.hidden institution form的内容
var frm=$('').append($(“.hidden institution form”).clone();
//删除隐藏类
$frm.find(“.hidden institution form”).removeClass(“hide”);
//用.instution替换.hidden institution表单
$frm.find(“.hidden institution form”).removeClass(“hidden institution form”).addClass(“institution”);
//找到输入字段#代码并更改其值
frm.find(“.code”).val('some value')//这行不通
“如何为动态创建的输入赋值”-与您对作为初始响应一部分的元素进行赋值的方式完全相同。查找(#code”)
-因此您有多个具有相同id的元素。
?顺便问一句,您在哪里将刚创建的元素添加到DOM?你已经创造了它。未添加到DOM中。然后在DOM中找不到它。嗯,它不在那里。我要找的元素代码只是“机构形式元素”的一部分,而不是隐藏的机构形式代码。感谢“如何为动态创建的输入赋值”-与您对作为初始响应一部分的元素进行赋值的方式完全相同。find(“#code”)
-因此您有多个具有相同id
的元素。顺便问一句,您在哪里将刚创建的元素添加到DOM?你已经创造了它。未添加到DOM中。然后在DOM中找不到它。嗯,它不在那里。我要找的元素代码是