所以我在页面上新添加了附加了Jquery.live()的元素,我现在想要在追加这些元素之后更改那些元素的值。
类似
$("#questionForm").empty();
$.get("questionCreator.html", function(data){
$("#questionForm").append(data);
});
var index=$(this).parent().index();
id = index;
var associatedQuestion = idQuestionAssociation[index];
var associatedResponses = idResponsesAssociation[index];
if(associatedQuestion != null){
$(".questionInput").val(associatedQuestion);
}
所以.val()调用,我认为不起作用,因为最初没有.questionInput元素,并且这是附加的。我觉得我应该使用.live,或.delegate,或.on,但我不确定我应该使用什么事件。
有人可以帮忙吗?
答案 0 :(得分:0)
$.get
是异步的,这意味着您尝试与$(".questionInput")
匹配的元素尚未在DOM中。您应该将其余的DOM操作放在回调中。
$.get("questionCreator.html", function(data){
$("#questionForm").append(data);
//change the values here
});
答案 1 :(得分:0)
尝试使用replaceWith更改内容,但调用$(".questionInput")
可能会返回一个数组,因此最好循环遍历可能的元素 - 除非它是唯一的,然后将其设为id属性(#questionInput)无需循环即可调用它。
$('.questionInput').each(function(i, obj) {
$(this).replaceWith('I am replacing the content for .questionInput');
});
这应该在返回数据后进入get
函数。