• ベストアンサー

jquery parseInt

失礼します。わかりにくい質問で申し訳ございません。 tar_element.attr('rowspan',parseInt(tar_element.attr('rowspan'),0) + 1); これはいったい何をやっているのでしょうか? ちなみにtar_elementはテーブルのtdの内容が格納されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5061/13226)
回答No.2

> もしよろしければ、作ってみた処理なのですが、tdが余分に出力されていてブラウザでうまく表示ができません汗 > ご教授お願いします汗 ブラウザのコンソール画面でエラーメッセージ等を確認されましたか? 開いた括弧と閉じた括弧の数が合っていないので構文エラーになりますので、まずは言語エンジンが出すエラーメッセージを潰す事から始めましょう。

losloson
質問者

お礼

失礼します!無事うまくいきました。テーブルを削除した際にレンダリングが起きていることを考慮していませんでした。有難うございました。

losloson
質問者

補足

ご返信ありがとうございます。 しかし現在クロームにて検証しているのですが、なにもエラーメッセージが出てこない状態です汗

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5061/13226)
回答No.1

attr メソッドはDOMの属性を取得したり設定したりするモノです。 まず、 tar_element.attr('rowspan', [・・・・]); は、td タグに rowspan 属性を設定するモノで、第2引数で渡した値が rowspan 属性の値になります。 なので、第2引数が「2」なら <td rowspan="2"> というタグに書き換えられます。 第2引数をセットするために行っている処理ですが、 parseInt(tar_element.attr('rowspan'),0) の parseInt は第1引数で渡された値から数値部分を取り出して、第2引数で指定した基数で計算して10進数の整数で返してくれる処理です。 第1引数が「tar_element.attr('rowspan')」なので、現在の rowspan 属性の値を取得しています。属性値は文字列で返されるので整数化するために parseInt を使っているのでしょう。 第2引数は、本来なら「10」を渡すべきなのですが転記ミスでしょうかね? まぁ、「0」を渡しても省略したと解釈されてデフォルトの「10」(10進数)だと解釈されて計算されるので、動くには動きますね。 で、現在の rowspan の値を整数で取得した後「 + 1 」を行っているので、値を1つインクリメントして、新しい rowspan 属性の値として書き込むようにプログラムされています。

losloson
質問者

補足

なるほどそもそもrowspanは1では結合できないので、+1して結合するようにしているのですね汗 読み解き方がわからず焦りました汗 もしよろしければ、作ってみた処理なのですが、tdが余分に出力されていてブラウザでうまく表示ができません汗 ご教授お願いします汗 <script> var temp_form = $('.form_table tr'); for(var i = 0, l = temp_form.length; i < l; i++){ var cells = temp_form.eq(i).children(); } //セル数を取得 var ss = cells.length; $(document).ready(function(){ //1行づつ処理をしていく,指定列から最後の列までの回転をする,行で見ていく //使用テーブル $('.form_table').each(function(){ var pre_element = null; var tar_element = null; var col_num = 4; //4番目のセル for(var nn = 5; nn <= ss; nn++){ $(this).find('tr').each(function(){ var now_td = $(this).find('td').eq(col_num); //trのtdを変数を入れていく、4番目のセルの値を格納 var target_td = $(this).find('td').eq(nn); //5番目のセルを格納 //pre_elementがNULLの場合以下の処理をしていく if(pre_element == null){ pre_element = now_td; //td4の内容を変数に格納 tar_element = target_td //td5の内容を変数に格納 } //now_tdのセルと先に変数pre_elementに格納したテキストの値が同じの場合は以下の処理をしていく else if(now_td.text() == pre_element.text()){ target_td.remove(); //5番目のセルのtd縦軸を削除する //rowspanの要素があるか判定 if(tar_element.attr('rowspan') == null){ tar_element.attr('rowspan',1); } //parseIntでCSSのプロパティを取得 tar_element.attr('rowspan',parseInt(tar_element.attr('rowspan'),10) + 1); }else{ pre_element = now_td; tar_element = target_td; } }); } }); }); </script>

関連するQ&A

  • フォームでテーブルの制御ってできる?

    例えば以下のようなテーブルがあるとします。 <html> <head> </head> <body> <table border> <tr><td rowspan="6">1</td> <td rowspan="3">2</td> <td>3</td></tr> <tr><td>4</td></tr> <tr><td>5</td></tr> <tr><td rowspan="2">6</td> <td>7</td></tr> <tr><td>8</td></tr> <tr><td>9</td><td>10</td></tr> </body> </html> フォームでこのrowspanの数値をいれるだけで このようなテーブルをつくるような手段はありますか? JavaScriptかHTMLでできる方法があれば教えてください。 また、テーブル部分の数値になっているところも テキストエリアで書き込めるようにしたいのですが、可能ですか?

    • ベストアンサー
    • HTML
  • jqueryで表に連番No.を追加したい

    こんにちは。 詳しい方教えてください。 先程タイトル通りtableに自動連番を追加したく、下記のページを参考にしました。 http://www.webopixel.net/javascript/328.html しかし私の知識が乏しくうまくいきません。 何を追加すればうまく連番になりますでしょうか。 ==================================================================== <script type="text/javascript"> $(function() { $('.sample tr').each(function(i) { if(i != 0) { $(this).prepend('<td>'+ i +'</td>'); } else { $(this).prepend('<th>No.</th>'); } }); }); </script> ==================================================================== <table class="sample"> <tr> <th rowspan="2">hoge</th> <th rowspan="2">hoge</th> <th colspan="4">hoge</th> </tr> <tr> <th>a</th> <th>b</th> <th>c</th> <th>d</th> </tr> <tr> ※ここに1からの連番を入れたいのです。 <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> </tr> <tr> ※連番2 <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> <td>hoge</td> </tr> ・ ・ ・ ==================================================================== 説明が下手でわかりにくくすみません・・・・。 是非詳しい方ご教示ください。 よろしくお願いいたします。

  • テーブル結合 縦横両方するには?

    テーブルの縦の結合は rowspan テーブルの横の結合は colspan これを使って表を結合しました 1つのセルに両方入れると正常な表になりません <td rowspan="3" colspan="3"> </td> というふうに書いたのですが表が新たに変なセルが増えてしまいます 解決方法わかる方おしえてください あとrowspan="3"と書いたら縦の下2つのセルのプログラム文は 消しています、これは問題あるでしょうか? colspanも同じやり方です

    • ベストアンサー
    • HTML
  • 大量にあるrowspanを分割したい。

    お世話になります。 HTMLでtableが沢山あるページを持ってます。 その中のrowspanをすべて分割したいのですが、 大量にあるため、何か正規表現をつかったりして、 一気に置き換えられるとイイな。。と思ってます。 ソフトは、Dream weaverを使っています。 ----------------------- <tr> <td rowspan="3">○</td> <td>△</td> <td rowspan="3">×</td> </tr> <tr> <td>△</td> </tr> <tr> <td>△</td> </tr> ----------------------- ↓ ----------------------- <tr> <td>○</td> <td>△</td> <td>×</td> </tr> <tr> <td>○</td> <td>△</td> <td>×</td> </tr> <tr> <td>○</td> <td>△</td> <td>×</td> </tr> ----------------------- 何か方法を知っている方がいらっしゃいましたら、 教えていただけると非常に助かります。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • Safariでテーブルのセルの高さを均等にしたい

    Safariです(ちなみに見ているバージョンは4) <table> <tr> <td></td> <td rowspan="2"></td> </tr> <tr> <td></td> </tr> </table> このような、片方が結合しているテーブルで、 隣のセルの高さを均等にしたいのです。 ほかのブラウザでは良いのですが、 Safariだとどうしても上が短く、下が長くなってしまいます… CSS等で均等にできないでしょうか?? 試しにheight:50%;にしましたがなりませんでした。

    • ベストアンサー
    • HTML
  • CSSのレイアウト

    tableでレイアウトを作っていたのですが、不便さが出てきたのでCSSで作り直そうとしています。 テンプレートを見るほうが早く仕組みを理解出来るので、欲しい形を探していたのですが見つかりません。 <table> <tr> <td rowspan="2">1</td> <td>2</td> </tr> <tr><td>3</td></tr> </table> この形のテンプレートを公開しているサイトを教えて頂きたいので質問しました。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • tableのtr要素をドラッグ&ドロップで任意に入れ替え、その順番を取

    tableのtr要素をドラッグ&ドロップで任意に入れ替え、その順番を取りたいです。 jqueryのSortableプラグインを調べ、これならできそうとプログラムを組み、 trの一行ごとならばできました。 やりたいことは、rowspanで連結されている<tr>を2行以上まとめて1つの要素とみなし、 入れ替えたいのですが、 jqueryのSortableでできますでしょうか? <table> <tr><td rowspan="2">一行目</td><td>あいう</td> <tr><td>えお<td></tr> <tr><td rowspan="2">二行目</td><td>かきく</td> <tr><td>けこ<td></tr> </table> <table>を入れ子にすれば実現はできそうですが、 ちょっとCSSの関係もあり、その方法を採用するのは難しい気がしています。

    • ベストアンサー
    • AJAX
  • 指定したセルにrowspan属性を適用したい

    テーブルのセル,例えばtd1にHTMLで言うところのrowspan属性を適用したいのですが,どうすればいいのでしょうか。どうしてもJavaScriptで適用したいのですが。 よろしくお願いします。

  • HTMLのrowspan

    HTML初心者です。 下記のようにテーブルを作成していますが、 2行目がなかったことにされてしまいます。 <table> <tr><td rowspan=2>1-1</td><td rowspan=2>1-2</td></tr> <tr></tr> <tr><td>3-1</td><td>3-2</td></tr> </table> 結合されたセルを2行分の高さで表示することはできますか? ただ、実際のHTMLはPHPで動的に作成しているので、 できれば「height属性で1行目の高さを2行分にする」以外の 方法を探しています。 以上、よろしくお願いします。

  • jquery.csv2table.jsのテーブル

    CSVの会員名簿を読み込み、表にしてWEBに表示する為にjquery.csv2table.jsを使った こちらのサイトを参考にさせて頂きました。 http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm CSVを読み込み、表示は成功したのですが。 もともとのCSVデータが横長に項目が多い為 表示されるテーブルは横長の表となってしまいます。 出来れば一行をセルの結合で2段にまとめて表示したいと思っています。 <td colspan="2"><td rowspan="2">を使って [1]はココに表示[2]はココに表示するみたいにテンプレ化して表示できればと思っていますが セルの背景色は変更できてもセルの場所を任意に変更できません やはりそういった事は難しいのでしょうか どなたか詳しい方、教えて頂けますと幸いです。 よろしく願い致します。