アプリ版:「スタンプのみでお礼する」機能のリリースについて

<table border>
<tbody>
<tr><th>名前</th><th>学年</th><th>評価</th></tr>
<tr><td>山田</td><td>1年</td><td>A</td></tr>
<!-- ここにエスケープしてappendしていきたい。 --!>
</tbody>
</table>

はじめまして。
上記のようなテーブルがあり、ここに新しく
<tr><td>鈴木</td><td>2年</td><td>B</td></tr>をエスケープしてjqueryで追加していきたい場合、一般的にどのように書けば良いのでしょうか?

エスケープせず追加するのなら、
$("table").append("<tr><td>鈴木</td><td>2年</td><td>B</td></tr>");
と書けば良いかと思いますが、エスケープしながら追加していく方法がわかりません。

わかる方、宜しくお願い致します。

A 回答 (2件)

いまいちしたいことがよくわからないので


『~じゃダメなんですか?』って
ちょっと石投げ込んでみたカンジだったんですが
いまいちまだわかってません

<tr><td>鈴木</td><td>2年</td><td>B</td></tr>
をエスケープしたいって文面通り受け取ると
ソースコードをそのまま表示したいって意味にとれるんですが
そんなことしても正直いみないと思うので

「文面通り受け取るとこうなっちゃうけど
そうじゃないんでしょ?」って意味も込めたNo1の回答です

1
本当に文面通りソースコードをそのまま表示したい

$("table").append("<div></div>").children("div:last-child").text("<tr><td>鈴木</td><td>2年</td><td>B</td></tr>");

2
テーブルのセルに入る文章に<>"&が含まれているのでどうにかしたい

この場合まずもとのデータの状態が知りたいです、そもそもすでにいらない<>"&とかが含まれている
htmlの文字列からしかデータがないんだったら正則表現つかってゴタゴタせんといかんので面倒なので割愛

テーブルのセルの内容が配列とかでまずあるんだとしたら

var tbl=[["鈴木","2年","B"],["田中","1年","A"]];

$.each(tbl,function(key,arr){
$("table").append("<tr><td></td><td></td><td></td></tr>").find("tr:last-child>td").each(function(i){
$(this).text(arr[i]);
})
})

3
jsのソースコードで内容を読まれたくないor文字化けするので
日本語をエスケープした状態でjavascriptを書きたい

$("table").append(unescape("%3Ctr%3E%3Ctd%3E%u9234%u6728%3C/td%3E%3Ctd%3E2%u5E74%3C/td%3E%3Ctd%3EB%3C/td%3E%3C/tr%3E"));

unescape()してappend()すりゃいいだけだと思います
    • good
    • 0

http://semooh.jp/jquery/api/attributes/text/val/

空のdivやpをappendしてからそこにtext()じゃダメなんですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

その方法で書く場合、
今回の例ではどう書けば良いということでしょうか?

$("table").append("<tr><td></td><td></td><td></td></tr>").text()??この後がわかりません。

お礼日時:2012/06/21 16:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!