4

を追加するための正しい構文の結果はたくさんありますが、値が に含まれる<li>解決策を見つけようとしています。firebug が表示され、jslint が表示されます。コンマの配置についてさまざまなバリエーションを試しましたが、うまくいきませんでした。 +this['name']+<li>'SyntaxError: unterminated string literal''Unclosed string'

 $.each(data.result, function() {
     $("ul").append("<li>Name: "+this['name']+"</li>
                     <li>Age: "+this['age']+"</li>
                     <li>Company: "+this['company']+"</li>
                     <br />");
 });

ありがとうございました。

4

3 に答える 3

11

\次のように、バックスラッシュ文字で行末をエスケープできます。

 $.each(data.result, function(){
 $("ul").append("<li>Name: " + this['name'] + "</li> \
     <li>Age: " + this['age'] + "</li> \
     <li>Company: "+this['company']+"</li> \
     <br />");
 });

これは、Javascript が自動的にセミカラムを行末に挿入するためです。そして、この場合、あなたの文字列は近くにありませんでした. 別の解決策は、各行の各文字列を閉じ、 を使用+してそれらをすべて連結することです。

 $.each(data.result, function(){
 $("ul").append("<li>Name: " + this['name'] + "</li>" +
     "<li>Age: " + this['age'] + "</li>" +
     "<li>Company: "+this['company']+"</li>" +
     "<br />");
 });

(関係ありませんが、要素<br/>内では許可されていません)<ul>

于 2012-11-03T02:45:33.380 に答える
0

これははるかに高速なはずです

 li = '';
 $.each(data.result, function(){
     li += "<li>Name: " + this['name'] + "</li>" +
          "<li>Age: " + this['age'] + "</li>" +
          "<li>Company: "+this['company']+"</li>" +
          "<br />"; // could remove this and use css
 });

 $("ul").append(li);

http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/を参照してください

于 2012-11-03T02:52:57.587 に答える
0

実際には、これをまったく連結したくありません! HTML または HTML に似たデータを含む可変データがどうなるかを考えてみてください。メソッドを使用すると、そのように解析され、問題が発生する可能性があり、XSS 攻撃メソッドにさらされる可能性さえあります。

すでに jQuery を使用しているため、適切な方法は簡単です。

$('ul').append(
    $('<li/>').text('Name: ' + this.name), 
    $('<li/>').text('Age: ' + this.age),
    // etc.
);

(注:.append() 指定した数のパラメーターを許可すると思います。そうでない場合は、追加するときに要素の配列を使用してみてください。)

于 2012-11-03T05:30:50.853 に答える