Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';一旦jQuery集合被用于包装另一个元素,我就不能访问它吗?_Jquery - Fatal编程技术网

为什么可以';一旦jQuery集合被用于包装另一个元素,我就不能访问它吗?

为什么可以';一旦jQuery集合被用于包装另一个元素,我就不能访问它吗?,jquery,Jquery,请看以下代码: var b = $('<div id="b" />'); $('#a').wrap(b); b.css({ border: '5px solid red' }); var b=$(''); $('a')。包装(b); b、 css({边框:'5px实心红色'}); 存储在b下的元素将没有边框 在使用b包装另一个元素后,是否仍有办法访问它 或者我应该再做一次b=$('#b') var b=$('') $('a').wrap(b).css({border:'5px

请看以下代码:

var b = $('<div id="b" />');
$('#a').wrap(b);
b.css({ border: '5px solid red' });
var b=$('');
$('a')。包装(b);
b、 css({边框:'5px实心红色'});

存储在
b
下的元素将没有边框

在使用
b
包装另一个元素后,是否仍有办法访问它

或者我应该再做一次
b=$('#b')

var b=$('')

$('a').wrap(b).css({border:'5px 实心红色“})


我不认为jQuery实际上使用了相同的“b”实例来包装它。您需要使用创建用于进行换行的“b”来覆盖“b”

var b = $('<div id="b" />');

b = $('#a').wrap(b).parent();

b.css({ border: '5px solid red' });
var b=$('');
b=$('#a').wrap(b.parent();
b、 css({边框:'5px实心红色'});
我想原因是,如果
a
是一个类而不是一个ID,并且有几个类,那么就不能使用同一个元素单独包装每个
.a


因此,它必须克隆用于包装的
b

b包含内存中的元素,在DOM append之后,您在第二行将b发送到DOM,然后通过“b”引用的元素调用css()而不是通过DOM匹配。

这将css样式添加到
#a
中,
b
不包含用于包装的元素。Alexander和RightSaidFred的代码从DOM中恢复b,并且这些代码可以工作。不,您的代码可以工作,因为第二行“b”从DOM接收元素“b”。然而,在第一行中,“b”指的是存储器。在内存中创建元素时,将其发送到DOM后,内存中元素的更改不会影响DOM。这就是真正的原因。@Gustavo:对“内存中”元素所做的更改将生效,无论该元素是否已添加到DOM中。。。对于
wrap()
。注意,它只对每个元素调用
wrapAll
。因此对于
wrapAll()
,它将克隆用作包装器的元素。
var b = $('<div id="b" />');

b = $('#a').wrap(b).parent();

b.css({ border: '5px solid red' });