Javascript 脚本不执行附加的数据,而是执行表单中预先编写的html代码,而且脚本已经加载到页面顶部
我有一个代码,我点击add,它会附加一些html,这些html有唯一的类名。代码是这样附加的Javascript 脚本不执行附加的数据,而是执行表单中预先编写的html代码,而且脚本已经加载到页面顶部,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个代码,我点击add,它会附加一些html,这些html有唯一的类名。代码是这样附加的 <script> var x = 1; $("#add").click(function() { $("#form").last().append('<input name="item' + x + '" placeholder="name" type="text" class="jj' + x + '"/><input type="text
<script>
var x = 1;
$("#add").click(function() {
$("#form").last().append('<input name="item' + x + '" placeholder="name" type="text" class="jj' + x + '"/><input type="text" class="xx' + x + '" name="some' + x + '">');
x = x + 1;
});
</script>
我还为这些类编写了脚本,这些脚本已经在页面开始时加载
<script>
var npp = "something";
$(document).ready(function() {
//o
$(".jj").click(function() {
$(".xx").val(npp);
});
//1
$(".jj1").click(function() {
$(".xx1").val(npp);
});
//2
$(".jj2").click(function() {
$(".xx2").val(npp);
});
//3
$(".jj3").click(function() {
$(".xx3").val(npp);
});
});
</script>
在控制台中,它没有显示任何错误,但是对于由append函数添加的元素,脚本也没有执行,对于表单中已经存在的html中的第一个元素,脚本也正在执行
<form id="form" action="..." method="post">
<input type="text" name="item" class="jj">
<input type="text" name="some" class="xx">
</form>
<button id="add">Add new field</button>
我的实际情况有所不同,但基本功能/逻辑相同。请告知为什么我的脚本不起作用。请不要使用。单击“函数使用打开”可应用于添加到html代码中的任何元素
例如:
$("body").on('click' , '.jj2' , function(){
$(".xx2").val(npp);
});
而不是使用。单击要应用于添加到html代码中的任何元素的函数use on
例如:
$("body").on('click' , '.jj2' , function(){
$(".xx2").val(npp);
});
这里有一个很好的答案来解释你的问题:举例说明 我引述: 因为这些是动态添加到现有HTML中的元素,所以 您需要使用事件代理它 处理程序与文档的附件 因此,不是:
$(".jj").click(function(){
$(".xx").val(npp);
});
做:
等等…这里有一个很好的答案来解释你的问题:举例说明 我引述: 因为这些是动态添加到现有HTML中的元素,所以 您需要使用事件代理它 处理程序与文档的附件 因此,不是:
$(".jj").click(function(){
$(".xx").val(npp);
});
做:
等等……谢谢你的知识,我从来没有想过on event handler可能是解决方案。这也是有效的,比如在所有地方都使用相同的类创建一个输入null条目,然后在每次单击add时计算类的数量,然后使用for循环重写循环中的脚本,如果循环为forx=0,则类名称将为.jj'+x';xbecause在我当前的脚本中,它修复了脚本有效的最大元素数,是否有任何方法可以使它动态,就像每次通过“附加”创建新元素一样?脚本还附加了它们的类名?为什么需要不同的类名?你不能只用一个类名吗?然后计算那个类的元素?我在这些类上执行数学运算,这就是为什么我给每个元素一个不同的类名,而不是id,所以运算只限于那个特定的类,谢谢你的知识,我从来没有想过on event handler可能是解决方案。这也是有效的,比如在所有地方都使用相同的类创建一个输入null条目,然后在每次单击add时计算类的数量,然后使用for循环重写循环中的脚本,如果循环为forx=0,则类名称将为.jj'+x';xbecause在我当前的脚本中,它修复了脚本有效的最大元素数,是否有任何方法可以使它动态,就像每次通过“附加”创建新元素一样?脚本还附加了它们的类名?为什么需要不同的类名?你不能只用一个类名吗?然后计算那个类的元素?我在这些类上执行数学运算,这就是为什么我给每个元素一个不同的类名,而不是id,所以运算只限于那个特定的类