我通过PHP在已经存在的HTML表(id = detailedTable)中生成HTML输入(id =“newItem”)和HTML段落(id =“newDesc”)。在尝试使用$("#newItem").change(function()...
触发函数后,我发现由于它是动态生成的,因此我必须使用Jquery .on()
来引用它。现在这部分有效。
我的问题是返回Ajax调用,我尝试更改#newDesc
值,但它无效。我怀疑这个ID是动态生成的相同原因。
$("#detailedTable").on('change','#newItem',function(){
var value=$(this).val();
value=value.replace(/\,/,'.');
value="value="+value;
$.ajax({
url:'z-getDesc.php',
type:'POST',
dataType:'json',
data:(value),
success:function(values){
values=values['descriptionA'];
$("#newDesc").val(values);
},
fail: function(xhr, textStatus, errorThrown){
alert('Please try again later');
}
});
});
到目前为止一切正常,返回'values'变量,剩下的就是:
我如何参考#newDesc
id?
由于
编辑:清除一些内容:
1- DOM最初被加载,用户与它进行交互,带来一些变化,从而产生一系列数据。
2-这个数组被加载到一个通过JQuery Datatables通过ajax调用创建的表中;除了用数组填充表格外,我还生成一行内联编辑,包含上述#newItem和#newDesc的行。
答案 0 :(得分:0)
生成内容后,您需要调用$("#detailedTable")。加载页面时会执行Javascript,因此当javascript执行时,它无法找到所选的ID并且不会再次尝试。调用.on的Add some javascript to whatever user interaction that generates the content,它应该有效。