詳しい条件とかは忘れたけど、ieのなんかのバージョンでjQueryを使ったとき $("<p>") のようなコードで要素を作れないと聞いたので確かめてみました。 個人のページのネタなのでie10だけチェック。 試したコードはこんな感じ。
<html>
<head>
<title>test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
<!--
$(
function()
{
$("body").append(
$("<p>").text("test")
);
}
);
//-->
</script>
</head>
<body>
</body>
</html>
jQueryのバージョンが上がったから大丈夫なのかieのバージョンが10だから大丈夫なのかは分からないけど、普通に動きますね。
ダメだってのは何のページで聞いた情報でしたっけ? と思ってそれっぽいキーワードで検索してみるとまぁ出るは出るは、ieは嫌われるべくして嫌われてるんだなぁ。
とりあえず、旧バージョンのieでも動くコードにするには、 $("<p>") のように書かずに $(document.createElement("a")) のように書かなければならないよう(未検証)です。
- 参考サイト1 : 雑想空間 ... jQueryがIEでうごかねぇーーー、って思ったので、メモっとく。
そういう関数を作っておいた方がいいかな? (もちろん未検証)
function $C(element_name)
{
return $(document.createElement(element_name) );
}
使うときはこんな感じで。
$("body").append(
$C("p").text("test") ← $("<p>").text("test")
);
え~と...
- 参考サイト2 : キョウダケダカンナー ... jQueryでDOM要素を生成するときに、第二引数でclass名つけるとIE6でエラーが出るって話
ie6の対応とか、やめちゃいましょう。 大手サイトも対応してないの結構あるし。
もちろん、公共のサイト作っている人は対応しなきゃダメだし、動作チェックも必要ですよ? タイヘンダナァ~。

