2016-07-02 4 views
0

Я пытаюсь динамически добавить текстовое поле в div, используя jquery. В то время как основной код работал, я подозреваю, что есть некоторые проблемы. Это связано с тем, что, когда я пытаюсь вернуть ширину текстового поля, используя свой id, он возвращает нуль. Это означает, что идентификатор не установлен правильно, поскольку текстовое поле можно увидеть на странице. Вот часть моего кода JQueryjquery append id элемента не идентифицирован

var form = $('<form/>',{"id" : "AnswerBox"}).appendTo($("#unanswered")); 

$('<textarea/>').attr({ 
    "rows":5, 
    "id" : "AnswerBoxArea", 
    "name" : "answer"    
}).appendTo('form'); 

Теперь, если я предупреждение

alert($("#AnswerBoxArea").width()); 

Она возвращает NULL, не может понять, почему. Любая помощь?

Проблема не считаю, что установка ширины. Это больше похоже на настройку идентификатора элемента. Как будто я делаю предупреждение ($ ("# AnswerBoxArea"). Attr ('id')) он возвращает undefined

Ничто не работает. Я предоставляю подробный код

$(document).ready(function() { 

$.ajax({ 
     url: "myteacher.php", 
     dataType: "json", 

     success: function(response){ 
         console.log(response); 

         $("#unanswered").append("<p style='text-align:justify; border-radius: 5px; background-color:rgb(220,220,220); padding: 5px'>"+response.qtext+"</p>"); 
          $("#unanswered").append('<form method = "POST" style = "padding:5px; margin:5px;" id="AnswerBox">'); 
          $("#unanswered form").append('<textarea rows="5" id="AnswerBoxArea" name="answer">'); 
          $("#unanswered form").append('<br><input type="submit" value="Answer" id="AnsTextQ">'); 


     }, 
     error : function(jqXHR, textStatus, errorThrown) { 
        alert(jqXHR.status+", " + jqXHR.statusText+", "+textStatus+", "+errorThrown); 
     } 
    }); 
    $(".AnswerBoxArea").css("width", $("#AnsBoxDiv").width()-30); 
    $(".AnswerBoxArea").css("max-width", $("#AnsBoxDiv").width()-30); 
    alert($("#unanswered").attr("id")); 
    alert($("#AnswerBoxArea").attr("id")); 

});

Это проблема области действия переменной. Идентификатор является локальным и к нему нельзя получить доступ?

+2

Ничего страшного в вашем размещенном коде https://jsfiddle.net/7js4v2nc/. У вас есть ошибки в консоли? Как выглядит визуализированный html? Как/Когда/Где вы вызываете предупреждение? – Jasen

+0

Предупреждение - это только чек, и ничего больше. Я считаю, что идентификатор не устанавливается. Почему? – soumyajyoti

+0

Проверить #unanswered элемент существует или нет. Проверьте наличие ошибок в консоли. Проконсультируйтесь с @Jasen, чтобы узнать, как он работает. – Hemakumar

ответ

0

Вы попробовали css, чтобы получить/установить ширину?

Use jQuery's css method like this: 

.css("width", width) 

or this, if you plan on setting more attributes: 

.css({"width":width}) 
+0

без причины, что использование 'css()' будет работать, если 'width()' does not – charlietfl

Смежные вопросы