質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

4514閲覧

JQueryでテーブルの行を追加した際に行数を数えるとずれてしまう

hidepon

総合スコア206

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/11/22 15:04

JQueryでテーブルの行をDOMで追加したところ、
phpで初期表示した状態からのカウントと
Dom生成から行数を数えた際のカウントがずれるという現象に悩まされています。
教えてください。よろしくお願いいたします。

jQuery(function(){
jQuery('#add_table').click(function(){
var len = $("#tbl tbody").children().length;
if(len > 6){
$("#add_table").attr("disabled","disabed");
}
var cntl = $("#cntl").val();
$.ajax({
type: "POST",
url: "/admin/au9",
data: {"cntl":cntl},
dataType: "json",
cache: false,
success: function(data, status){
//テーブルの列数
var j = 0;
//Ajaxで取得した要素から列数を計算
for(var i in data){
j++;
}
var len = $("#tbl tbody").children().length;
data = '<tr><td><span id="prm' + len + '"></span><input type="button" name="item" class="items" value="選択" /></td>';
for (var i=0; i<j; i++) {
data += '<td><input type="text" name="val[]" maxlenth="5" /></td>';
}
data += '</tr>';
$("#tbl").append(data);
},
error: function(XMLHttpRequest, status, errorThrown){
alert("エラーが発生しました!");
}
});

}); jQuery('#del_bottom').click(function(){ if (jQuery('tbody tr').length) { jQuery('tbody tr:last').remove(); } });

});

<table style="text-align:left;" border="1" cellpadding="2" cellspacing="2" id="tbl" class="tbl_info"> <tbody> </tbody> </table> <input type="button" id="add_table" value="追加する" /> ※テーブルの列数は可変です。 初期状態ではPHPでth行とtdの1行+1行を表示しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

関係ないかもしれませんが、気になった点としては、#tbl tbody の子要素数を計算しているようですが、実際には #tbl 要素に append していますね。
tbody と同階層に tr 要素ができていないでしょうか。

Javascript

1var len = $("#tbl tbody").children().length; 2 3... 中略 4 5$("#tbl").append(data); 6

投稿2015/11/24 03:44

編集2015/11/24 03:45
usk

総合スコア397

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問