使用jQuery选择字符串中的标签

时间:2009-08-02 19:26:04

标签: javascript jquery html ajax animation

我的网站因ajax调用而获取值。之后,我想将结果(字符串)插入标签中。但是,我想以这样的方式插入该结果:(1)它必须具有opacity = 0,然后(2)它将slideDown(),因此整个内容列表使用动画向下推,最后(3)改变不透明度= 1.想象一下,这就像Facebook消息列表插入过程

我计划这样做的方法是首先将结果字符串从ajax返回到opacity = 0。但是,我不知道如何使用jQuery从字符串中选择标记。我知道jQuery只能从DOM中选择。那怎么做?有什么建议吗?

由于

3 个答案:

答案 0 :(得分:0)

Hide()是一个jquery函数,意味着它只适用于jquery对象,所以你必须先在DOM中注入html,然后在DOM元素上调用hide()。

$('#msgList').load (url,data,function(html){
var $this = $(this); // cache $(this) for performance
$this.hide().html(html); // inject the html in the DOM
$('#aa', $this).hide(); // hide #aa
$this.show(); // reveal the messageList
});

答案 1 :(得分:0)

以下将使用简单的.get()包装器进行ajax调用。

然后回调函数会将响应加载到jquery对象中并找到所需的标记。

然后隐藏此标记并将其附加到div容器。

最后它会将其滑下来。

//do ajax call
$.get( url, function(html) {

    //load html into a jQuery object, find the tag by id then hide it
    var $el = $(html).filter('#someId').hide();
    //append element to the dom and slide it down
    $el.appendTo('#someDiv').slideDown('slow');   

});

答案 2 :(得分:0)

我会考虑将返回值放在SPAN中。隐藏将容纳它的容器。将SPAN的不透明度设置为0,然后将结果添加到容器中并将其放入容器中。完成后,向下滑动容器并在回调中显示结果,以显示slideDown方法。

$.ajax({
   ...
   success: function(data) {
         var container = $('#container').hide();
         $('<span />').css( 'opacity', 0 )
                      .html(data.result)
                      .appendTo(container);
         container.slideDown('normal', function() {
                       $(this).( 'span:first' )
                              .animate( { 'opacity': 1.0 } );
                   });
   }
   ...
});