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行を表示しています。
No.1ベストアンサー
- 回答日時:
ご提示の内容だけでは、なにをなさりたいのかよくわかりませんが・・・
>Dom生成から行数を数えた際のカウントがずれる~~
どこがずれているのかご質問に記してないので推測するしかないのですが、削除ボタンを押したときに1マスだけ削除したいけれど全部消えちゃうという意味なのでしょうか?
以下、その仮定で回答します。
ご提示のコードで生成しているのは1行だけなので、その1行が削除されているので、おかしなところは見当たりません。(表示された状態で確認できると思いますが・・・)
もし1セル(=td)を削除したいのであれば、削除するコードをtd要素を対象にするようにしてください。
ajaxで複数行生成したいのであれば、successの関数のなかで、複数行生成するようにしてください。
上記のどちらかで意図するようになるのではないでしょうか?
「仮定」が違っていましたなら、無視してください。
<おまけ>
要素追加の際には「#tbl」とidで指定しているのに対して、削除では「tbody」と要素だけで指定しているので、表が複数あったりすると、やっぱりカウントがずれる(?)ことになりかねないように感じます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
javascriptで<table>背景色の取得
-
javascriptでクリックするごと...
-
javascript クリックすると、あ...
-
送信フォームで送信ボタンをお...
-
特定<table>内の<td>の色を変える
-
VBScriptでHTMLのセレクトボッ...
-
onchangeイベントを強制的に発...
-
value内に変数を入れたい
-
onClick="this.form.submit
-
チェックボックス付きのテーブ...
-
ファイル選択と同時にアップロ...
-
return trueとreturn falseの用...
-
tableの任意行にfocusをあてる
-
onclickで2個指定するには?
-
テーブルにおける行(セルにプル...
-
JavaScriptで<select>の<option...
-
hiddenのvalueの値を変えたい
-
マウスをブラウザの外に出した...
-
CSVファイルを読みこみ、プルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
innerHTMLでのテーブル作成
-
javascriptでクリックするごと...
-
【jQuery】tableループ内のIDの...
-
jquery.csv2table.jsのテーブル
-
<iframe>内にHTMLをランダム表...
-
Javascriptでテーブルタグの座...
-
画面表示とともに、テーブルの...
-
テキストエリアに入力した改行...
-
color 属性が追加できない
-
プルダウンメニューを表の中に...
-
javascriptで<table>背景色の取得
-
javascriptで画像をテーブルに...
-
JQueryでテーブルの行を追加し...
-
jquery にて、アラートダイアロ...
-
javascriptでスロットマシン
-
簡単なJavaスロットマシーンに...
-
エラーチェックの送信について
おすすめ情報