jqueryを使用してdivに動的にテキストエリアを追加しようとしています。基本的なコードが機能している間、私はいくつかの問題があると思う。これは、idを使用してtextareaの幅を返そうとするとnullを返すためです。つまり、テキストエリアがページに表示されるため、IDが正しく設定されていないことを意味します。ここに私のjqueryのコードjquery要素IDが追加されていません
var form = $('<form/>',{"id" : "AnswerBox"}).appendTo($("#unanswered"));
$('<textarea/>').attr({
"rows":5,
"id" : "AnswerBoxArea",
"name" : "answer"
}).appendTo('form');
の一部である今、私は警告
alert($("#AnswerBoxArea").width());
を行う場合にはNULLを返し、理由を理解することはできません。どんな助け?
幅の設定を考慮していない問題はありません。要素idの設定にはより多くのものがあります。あたかもアラート($( "#AnswerBoxArea")。attr( 'id'))を返すと、未定義になります。
何も問題はありません。私はdetaiedコード
$(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"));
を提供しています
});
変数のスコープの問題ですか? IDはローカルであり、アクセスできません。
投稿コードhttps://jsfiddle.net/7js4v2nc/に間違いがありません。コンソールに何かエラーがありますか?レンダリングされたhtmlの外観はどうですか?どのように/いつ/あなたはアラートをどこに呼びますか? – Jasen
アラートはチェックのみで、それ以外のものはありません。私はIDが設定されていないと考えています。理由は何ですか? – soumyajyoti
#unanswered要素が存在するかどうかを確認してください。コンソールのエラーを確認してください。 @Jasenがうまく動作するかどうかを確認してください。 – Hemakumar