0

是否可以完全重写 div 中的内容,而不是使用 prependTo 并添加到最新的?我应该使用什么 jQuery 函数?

$(function() {
    function log( message ) {
      $( "<div/>" ).text( message ).prependTo( "#log" );
      $( "#log" ).attr( "scrollTop", 0 );
    }

    $.ajax({
      url: "london.xml",
      dataType: "xml",
      success: function( xmlResponse ) {
        var data = $( "geoname", xmlResponse ).map(function() {
          return {
            value: $( "name", this ).text() + ", " +
              ( $.trim( $( "countryName", this ).text() ) || "(unknown country)" ),
            id: $( "geonameId", this ).text()
          };
        }).get();
        $( "#match" ).autocomplete({
          source: data,
          minLength: 0,
          select: function( event, ui ) {
            log( ui.item ?
              "Selected: " + ui.item.value + ", geonameId: " + ui.item.id :
              "Nothing selected, input was " + this.value );
          }
        });
      }
    });
  });

<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
4

3 回答 3

2

您可以使用.html()重写 DOM 元素的内部 HTML。我会重写你的函数:

function log( message ) {
  $( "#log" ).html( $( "<div/>" ).text( message ) ).attr( "scrollTop", 0 );
}

或者使用.text()如果您希望它剥离 HTML,那么您的函数将重写为:

function log( message ) {
  $( "#log" ).text(message);
}
于 2013-08-15T05:27:23.983 回答
1

对于完全重写,您可以使用.html()

.html();
于 2013-08-15T05:26:18.400 回答
1

对的,这是可能的。

改变

$( "<div/>" ).text( message ).prependTo( "#log" );

$("#log" ).html( "<div>"+message+"</div>" );
于 2013-08-15T05:26:57.840 回答