-6

何らかの理由で、関数内に「& (amp)」を含む文字列を追加しようとすると.html()、認識されない式エラーがスローされます。&文字列を変換する方法、または必要な文字列を対応するセレクターに挿入する方法を知っていますか?

var img_description = "Aluminum Desktop Computer, Keyboard & Mouse with Clipping Paths";

$(img_description).html(img_description);

私のコードimg_descriptionでは動的変数であることに注意してください。

4

3 に答える 3

4

これは無効なセレクターです。最初の部分は、html を置き換える要素である必要があります。この例では、div のコンテンツを ID に置き換えます。test

デモ: http://jsfiddle.net/tymeJV/YKhAa/1/

$("#test").html(img_description);

テストの#前に、特定の ID (この場合、ID のtest) を選択します。

API へのリンクは次のとおりです: http://api.jquery.com/category/selectors/

于 2013-06-05T13:16:34.503 に答える
2

これで問題ありません:

$(document).ready(function() {
   $('p').html('&');
});

http://jsfiddle.net/EJSS2/1/

あなたのコードは間違っています。html をセレクターと html として使用しようとしています。

于 2013-06-05T13:16:43.923 に答える
0

あなたがやろうとしていることは意味がありません。任意の文字列から jQuery オブジェクトを作成することはできないため、要素のセレクターとして解釈されています。そのセレクターのアンパサンド (&) に関する問題は、セレクターのドキュメントで説明されています。

メタ文字 ( !"#$%&'()*+,./:;<=>?@[]^`{|}~ など) を名前のリテラル部分として使用するには、 2 つのバックスラッシュでエスケープする必要があります: \\. たとえば、id="foo.bar" を持つ要素は、セレクター $("#foo\\.bar") を使用できます。

ただし、それを行っても、最初の部分は役に立たないので、何も起こらないことがわかります。を使用してその HTML コンテンツを設定する前に、最初に少なくとも 1 つの要素を選択するか、新しい要素を作成する必要があります (何もしなくても.html()、を含む文字列を喜んで受け入れます)。&

于 2013-06-05T13:17:40.647 に答える