一旦用于包装另一个元素,为什么我不能访问我的jQuery集合?

时间:2011-02-08 02:24:46

标签: jquery

看看这段代码:

var b = $('<div id="b" />');
$('#a').wrap(b);
b.css({ border: '5px solid red' });

jsFiddle

b下存储的元素有边框。

有没有办法在b被用来包装另一个元素后仍然访问它?

或者我应该再次b = $('#b')吗?

3 个答案:

答案 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匹配。