0

http://jsfiddle.net/mark69_fnd/DyRCZ/

Chromeの場合:

ここに画像の説明を入力してください

IE9の場合:

ここに画像の説明を入力してください

jQuery1.8.0を使用しています

さて、IE9はダメだと知っていますが、IEは5つの主要なブラウザーの1つであり、jQueryは開発者をIEの「特殊性」から隔離することになっていますね。

それで、何が問題なのですか?

ありがとう。

PS

IEの主題が特定の種類の話に招待することは知っていますが、建設的にしてください。

編集

文字列の配列が機能していないと主張するすべての人に。jQuery 1.8.0はそれをサポートします。そうでなければ、ChromeでもFirefoxでも機能しませんでした。しかし、それはそれらの両方に当てはまります!唯一の問題はIE9にあります。これは、jQuery1.8.0APIafter()がそこで壊れていることを意味します。

EDIT2

after()jQuery 1.8.0には、Chromeでも問題が多いと思います。たとえば、以下は機能する必要がありますか?

$('#itemsHeader').after("         
                        <tr><td>a</td></tr>");​

http://jsfiddle.net/mark69_fnd/Nw8Hz/

そして何について:

$('#itemsHeader').after("         <tr><td>a</td></tr>");​

答えは、前者は機能しませんが、後者は機能するということです。HTMLの観点からは、どちらも同一であり、機能するはずです。しかし、それはChromeでもありません。

EDIT3

私は愚かだ。はい、そうです。

4

3 に答える 3

1

jQueryのドキュメントには、HTML文字列の配列が入力としてサポートされているとは記載されていません。

.after(content [、content])

一致した要素のセットの各要素の後に挿入するコンテンツHTML文字列、DOM要素、またはjQueryオブジェクト。

content一致する要素のセットの各要素の後に挿入する1つ以上の追加のDOM要素、要素の配列、HTML文字列、またはjQueryオブジェクト。

編集:わかりました。もう一度見てみると、HTML文字列の配列を意味する方法で読み取ることができますが、それは読み取る方法ではないと思います。この場合、ドキュメントはあいまいであり、修正する必要があります。

于 2012-08-23T17:36:04.970 に答える
1

.after()APIは、明示的にhtml文字列の配列ではなく、DOM要素の配列をサポートします単純な文字列連結を使用するだけです。

http://jsfiddle.net/DyRCZ/11/

var i, rows = "";

for (i = 0;i < 4; i += 1){
    rows += '<tr><td colspan="2">This is item ' + i + '</td></tr>';
}
$('#itemsHeader').after(rows);​

引数を説明するjQueryドキュメント

追加の引数-他のコンテンツ追加メソッドと同様に....after()は、入力として複数の引数を渡すこともサポートしています。サポートされている入力には、DOM要素、jQueryオブジェクト、HTML文字列、およびDOM要素の配列が含まれます。

ここで明示的に述べられているように、文字列の配列は、メソッドでサポートされているパラメーターではありません。Chromeで動作しているからといって、意図的で信頼性の高い機能であるとは限りません。jQueryは、ブラウザー間で意図された動作を標準化します。文書化されていない機能は、ブラウザーの特定のjs実装がケースを処理する方法に応じて、いずれかの方向に進む可能性があります。

于 2012-08-23T17:44:37.767 に答える
0

IE9の場合 http://jsfiddle.net/DyRCZ/3/

IE9で問題なく動作しました。テキストの文字列ではなく、配列を渡しています。配列を文字列に結合して渡すことを試みてください。そうすれば問題ありません。

また、ELEMENTSの配列を引き続き使用する場合は、次のように作成する必要があります。

http://jsfiddle.net/DyRCZ/10/

rows.push($("<tr/>").html('<td colspan="2">This is item ' + i + '</td>'));
于 2012-08-23T17:33:19.353 に答える