0

1つのダイアログに表示したい2つの別々の順序付きリストがありますが、何らかの理由で2つのダイアログが表示されます。どうしてこれなの?

<ol>
 Test
 <li>a</li>
 <li>b</li>
</ol>

<ol>Test
 <li>a</li>
<li>b</li>
</ol>

      $.ajax({
        url: 'test.asp',
        data: vals,
        dataType: 'json',
        type: 'post',
        success: function(data){
          var $dialog = $(data.message)
          .appendTo('body')
          .dialog({
             modal: true
          });
        }
      });

上記は2つのダイアログを生成します。

4

1 に答える 1

0

<div>次のように1つにまとめます。

$.ajax({
    url: 'test.asp',
    data: vals,
    dataType: 'json',
    type: 'post',
    success: function(data){
        var $dialog = $("<div>").append(data.message)
        .appendTo('body')
        .dialog({
            modal: true
        });
    }
});

この問題は、応答に2つの有効なHTML文字列が配列として含まれていることが原因で発生しました。$(data.message)を呼び出すと、jQUeryは2つの別個<ol>の要素を作成し、それらを配列で返します。.dialog()次に、その配列を呼び出すと、各要素がダイアログ内の最上位ノードになります。

于 2012-10-25T04:54:00.353 に答える