1

我目前使用 $.get() 从另一个文件中获取 HTML 标记。如何将结果添加到当前 DOM 的当前 jQuery 匹配元素集?

我认为 add() 可以解决问题,但事实并非如此。例如,这不起作用:

$.get('file.html', function(data) {
    $('body').add(data)
});

但理想情况下,如果 file.html 有,比如说,'',我希望能够像在当前元素集中一样使用#result,使用 $('#result').html(..)。

我可以做的一件事是使用 $.load('file.html #result')... 但我必须多次这样做,因为我将使用多个元素。

我当时的想法可能是使用

sub$ = jQuery.sub();

并将返回的 HTML 字符串从 $.get 添加到它,但不知道是否可能。

4

2 回答 2

6

您可以将整个 html 响应转换为 jQuery 对象,而无需将其插入 DOM。这允许您操作或查找特定元素或值,并对响应的不同部分执行不同的操作。

例子:

$.get('file.html', function(data) {
    var $response=$(data);
    var myButton=$response.find('button');

     var someDiv= $response.find('#someDiv').css('color','red')
     $('#someForm').append( myButton)

     $('body').append( someDiv)
});

您还可以检查响应中是否存在某些元素或某些值并相应地处理响应。

$.get('file.html', function(data) {
   var $response=$(data);

    if( $response.find('#someDiv').length){
      doThis();
    }else{
       doThat();
    }

})
于 2012-12-09T15:59:58.643 回答
0

只需查看 jQuery 文档http://api.jquery.com/html/

您必须使用 html 方法:

$.get('file.html', function(data) {
    $('body').html(data);
});
于 2012-12-09T16:21:41.797 回答