你可以在jQuery中加载另一个动态元素中添加动态元素吗?

时间:2012-11-08 15:39:16

标签: javascript jquery

我正在尝试在加载时初始化一个带有文本区域的div。我在加载过程中仍然使用数据填充文本区域。一旦创建了所有元素,我就会找到元素并使用“appendTo”在加载过程中添加另一组动态元素。

这是第一组元素加载的地方......

 j$(function() {

                   for(var i = 0; i < Survey_result.length; i++){

                    j$('<div id="QDiv'+Survey_result[i].Id+'">'+
                          '<div id="'+Survey_result[i].Survey_Question__r.Question_Input_Type__c+'">'+
                             '<textarea cols="130" id="Q_'+Survey_result[i].Survey_Question__c+'"  readonly="true" name="p_Q">'+Survey_result[i].Survey_Question__r.Question__c+'</textarea>'+
                          '</div>'+   
                      '<div>').appendTo('#SurveyBuilder_div');
                      QelId='#Q'+i;
                   }

这是我尝试添加子元素但不加载的地方。是因为它没有看到父元素id吗?

   if(QuestionType=='PickList'){

                               j$('<div id="ADiv'+QId+'">'+
                                  '<select id="selAnswer'+i+'" size="1">'+      
                                  '</select>'+
                                   '</div>').after(MainDiv);
                                   bp='#ADiv'+QId;

                                 j$(Answer_result).each(function(){

                                           j$(' <option value = "'+Answer_result[b].Id+'">'+Answer_result[b].Answer__c+'</option>').after(bp);
                                           b++;
                                 });                   

                        }else if(QuestionType=='Radio'){
                               j$('<div id="ADiv'+QId+'">'+
                                  '</div>').appendTo(MainDiv);

                                   bp='ADiv'+QId;

                                j$(Answer_result).each(function(){
                                       j$('<input type="radio" id="Radio_CtrlType'+b+'" value="'+Answer_result[b].Id+'" name="ctrlSel'+i+'"/>'+
                                          '<label for="Radio_CtrlType'+b+'">'+Answer_result[b].Answer__c+'</label>').appendTo(bp);
                                           b++;
                                 });
                         }else if(QuestionType=='Checkbox'){
                                j$('<div id="ADiv'+QId+'">'+
                                   '</div>').appendTo(MainDiv);
                                    bp='ADiv'+QId;

                                j$(Answer_result).each(function(){
                                      j$('<input type="checkbox" id="Checkbox_CtrlType'+b+'" value="'+Answer_result[b].Id+'" name="ctrlSel'+i+'"/>'+
                                         '<label for="Checkbox_CtrlType'+b+'">'+Answer_result[b].Answer__c+'</label>').appendTo(bp);
                                         b++;
                                }); 
                         }else if(QuestionType=='Textbox'){
                              j$('<div id="ADiv'+QId+'">'+
                                 '</div>').appendTo(MainDiv);
                               bp='ADiv'+QId;
                               j$(Answer_result).each(function(){
                                     j$('<input type="text" id="Textbox_CtrlType'+b+'" value="'+Answer_result[b].Id+'" name="ctrlSel'+i+'"/>').appendTo(bp); 
                                    b++;
                               });
                         }            

1 个答案:

答案 0 :(得分:0)

修改页面上的内容时,您需要

1)确保页面已经加载(直到完成后才做任何事情,你做得正确,并且

2)如果你仍然没有看到你的内容,很可能你的目标元素选择器什么也没有返回。要检查这一点,请执行console.log($('#yourselector').length);如果长度为0,则无法在页面上找到任何要添加的内容。

(顺便说一句,console.log();记录到开发者控制台,例如现在所有主流浏览器都可以使用)