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で質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2025年相性がいい人のサイトの...
-
コードレビューをお願いします。
-
イラストレーター、縦中横のシ...
-
食材の期限を管理するためにGAS...
-
二次元配列の中の各行の要素を...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
前回の質問の続き function mov...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
【jQuery】tableループ内のIDの...
-
テーブルの行数を可変長にした...
-
javascript でテーブル操作
-
javascriptで<table>背景色の取得
-
javascriptで画像をテーブルに...
-
csvファイルのデータを変数とし...
-
指定のテキストをクリックする...
-
動的なcheckboxのcheckedについて
-
javascriptでクリックするごと...
-
Table内TDの子要素を移動させた...
-
テキストエリアに入力した改行...
-
tbody要素のinnerHTMLが書き換...
-
JQueryでテーブルの行を追加し...
-
jquery.csv2table.jsのテーブル
-
JavaScriptでアコーディオンメ...
-
javascriptでスロットマシン
-
html内>テーブル内に複数のjav...
おすすめ情報