jQuery是否有一个事件可以捕获动态创建的DOM内容的创建?或者有没有办法在jQuery中执行此操作?
我注入jQuery的网页动态创建文本框。我无法控制。但是,我想每隔3秒检查一个新文本框是否已创建,然后用值填充它。
文本框如下所示:
<input id="AplEducationTbl:EstName:0" type="text" onchange="return false">
<input id="AplEducationTbl:EstName:1" type="text" onchange="return false">
所以有几个问题。 id使用冒号,我不知道如何在jQuery中转义。 onchange返回false,这使我无法挂钩我的事件。
使用:
setTimeout(function(){
/* What do I put here? */
}, 3000);
答案 0 :(得分:1)
您可以使用事件委派并搜索以AplEducationTbl:EstName
开头的ID吗?
$(document).on("change", "input[id^=AplEducationTbl\\:EstName]", function() {
console.log("Change");
});
答案 1 :(得分:0)
但我想每隔3秒检查一下是否创建了一个新文本框
为此,您必须使用setInterval()
方法:
var len = $('input[id^="AplEducationTbl:EstName"]').length;
setInterval(function () {
if ($('input[id^="AplEducationTbl:EstName"]').length > len) {
console.log('changed.');
len = $('input[id^="AplEducationTbl:EstName"]').length;
} //^^^^----------------------------------------update the value of len
}, 3000);
id使用冒号,我不知道如何在jQuery中转义。
对于这个,您可以使用两个正斜杠\\
,如其他答案和其他方式所建议的那样,使用字符串表示将id值放在引号中,如下所示:
$('input[id^="AplEducationTbl:EstName"]')
//-----------^-----------------------^------put the value in quotes like this
//------------------------------------------and you are good to go.