看看这段代码:
var b = $('<div id="b" />');
$('#a').wrap(b);
b.css({ border: '5px solid red' });
b
下存储的元素不有边框。
有没有办法在b
被用来包装另一个元素后仍然访问它?
或者我应该再次b = $('#b')
吗?
答案 0 :(得分:4)
我不认为jQuery实际上使用相同的“b”实例来包装它。您需要使用为创建包装而创建的那个覆盖“b”。
var b = $('<div id="b" />');
b = $('#a').wrap(b).parent();
b.css({ border: '5px solid red' });
我想原因是如果a
是一个类而不是一个ID,并且有几个,那么你将无法使用相同的元素来单独包装每个.a
。
因此它必须复制它用于进行换行的b
。
答案 1 :(得分:1)
var b = $('');
$('#a')。wrap(b).css({border:'5px 纯红色}};
答案 2 :(得分:1)
b包含内存中的元素,在DOM追加之后,在第二行发送b到DOM,然后在“b”引用的元素之前调用css()而不是DOM匹配。