问题 如何在jquery中替换('something')后获取对象的实际内容


我有这个代码

$(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'
});

我想打印'span'的类名,即'medium'


1073
2017-08-26 08:55


起源



答案:


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

$('.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() 查看新元素而不是旧元素。


10
2017-08-26 09:41



谢谢,你钉了它。 - mdennisa


答案:


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

$('.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() 查看新元素而不是旧元素。


10
2017-08-26 09:41



谢谢,你钉了它。 - mdennisa


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

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

3
2017-08-26 09:03



thx andrew,我的意图是有权操作实际'obj'中的所有内容,$('。size')。click(function(){var obj = $(this),repl = $('<div class = “大小”>怎么了男人??!<span class =“medium”> </ span> </ div>'); obj.replaceWith(repl); alert(obj.find('span')。attr(' class')); //这将打印'undefined'//我想从实际的'obj'}获取类名; - mdennisa
但你知道你刚刚分配 size 对它来说,为什么不仅仅是提醒 size?做就是了: replacement.find('span').attr('class') 如果你真的必须 - Andrew Bullock
是的安德鲁,你的代码首先解决了我的问题。但我想我错过了。这是最终的结果 jsfiddle.net/HCXaK/1 - mdennisa