0

我正在尝试在加载时初始化一个带有文本区域的 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++;
                               });
                         }            
4

1 回答 1

0

修改页面内容时,需要

1)确保页面已经加载(在 domready 之前不要做任何事情,你做得正确,并且

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

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

于 2012-11-08T17:28:02.487 回答