11

我有这个代码

$(document).ready(function(){
    $('.selector').click(function(){
        obj = $(this);
        obj.replaceWith('<div class="size">whats up man ??!</div>');
        alert(obj.html());
    });
});

我想得到'obj'的新内容'replaceWith'

但,

我得到的是旧内容......

我如何获得'obj'的实际内容???

我的意图是访问新的“obj”

$('.selector').click(function(){
            var obj = $(this),
            repl = $('<div class="size">whats up man ??! <span class="medium"></span></div>');
            obj.replaceWith(repl);
            alert(obj.find('span').attr('class')); //this will print 'undefined'
});

我想打印“中”的“跨度”的类名

4

2 回答 2

10

您更新的方法是正确的,只需要这样的调整:

$('.selector').click(function(){
  var obj = $(this),
      repl = $('<div class="size">whats up man ??! <span class="medium"></span></div>');
  obj.replaceWith(repl);
  alert(repl.find('span').attr('class')); 
});

你可以在这里测试一下。重要的变化是repl.find()查看新元素而不是旧元素。

于 2010-08-26T09:41:35.403 回答
3

你为什么要那样做?你知道你用什么代替它......

$(document).ready(function(){
    $('.selector').click(function(){
        var obj = $(this);
        var replacement = $('<div class="size">whats up man ??!</div>');
        obj.replaceWith(replacement);
        alert(replacement.html());
    });
});
于 2010-08-26T09:03:40.677 回答