在wrapInner函数中使用jQuery对象后,如何更新它的css?

在wrapInner函数中使用jQuery对象后,如何更新它的css?,jquery,Jquery,我有一个简化的div,带有一些简化的样式: <div id="divOne" style="width:400px;height:300px;background:#f00"> This is my content to be wrapped. </div> 这是我要包装的内容。 我想创建一个jQuery对象,并在附加后设置其样式 $(document).ready(function(){ var divTwo = $('<div \>').cs

我有一个简化的div,带有一些简化的样式:

<div id="divOne" style="width:400px;height:300px;background:#f00">
  This is my content to be wrapped.
</div>

这是我要包装的内容。
我想创建一个jQuery对象,并在附加后设置其样式

$(document).ready(function(){
  var divTwo = $('<div \>').css('background','#0f0');
  $('#divOne').wrapInner(divTwo);
  divTwo.css('background','#00f');
});
$(文档).ready(函数(){
var divTwo=$('').css('background','#0f0');
$(#divOne')。wrapInner(divTwo);
css('background','#00f');
});
内部div的背景应该是蓝色,而不是绿色。
奇怪的是,我可以调用
警报(divTwo.css('background'),它会告诉我它是蓝色的。

首先将div附加到dom,然后应用样式

$(document).ready(function(){
   $('#divOne').wrappInner('<div name="innerDiv" \>');
  $('[name=innerDiv]').css('background','#0f0')//blue color
});
$(文档).ready(函数(){
$('#divOne')。包装器('');
$('[name=innerDiv]').css('background','#0f0')//蓝色
});

很有趣。这看起来像是jquery的一个怪癖,在wrapInner函数中没有克隆您创建的对象的样式。试试这个:

$(document).ready(function(){
   $('#divOne').wrapInner('<div/>').find('div').css('background','#00f')
});
$(文档).ready(函数(){
$('divOne').wrapInner('').find('div').css('background','00f'))
});
还是这个

$(document).ready(function(){
   $('#divOne').wrapInner('<div style="background:#00f"/>')
});
$(文档).ready(函数(){
$(“#divOne”).wrapInner(“”)
});

在不使用name属性的情况下尝试此操作

$(document).ready(function(){
   $('#divOne').wrappInner('<div\>');
   $('#divOne').children('div').css('background','#0f0')//blue color
});
$(文档).ready(函数(){
$('#divOne')。包装器('');
$('#divOne')。children('div')。css('background','#0f0')//蓝色
});

哪一个?为什么要用一种颜色创建div,然后立即更改它?为了演示的目的,立即更改颜色只是一种很容易看到的效果。在
wrapInner()调用之前设置颜色有什么错?我相信
wrapInner()
会创建具有指定结构的新元素,它不会附加传递的元素,这就是代码不起作用的原因,
divTwo
永远不会插入到DOM中感谢您解释
wrapInner()
会创建与我的对象无关的新元素;这清楚地解释了我在div中看到的行为。name属性?您应该使用一个类而不是我的项目在一个有状态插件中使用此代码,该插件将应用于多个元素。我更喜欢通过jQuery对象引用新创建的元素,而不是通过任意id或name属性。koala_dev:class应用于指定样式,name属性专门用于获取句柄,并执行better@Farhan你的说法不对,类不仅用于样式设计,而且w3c特别声明div elements@koala_dev没有name属性,我不知道根据w3c,name属性不存在于div中,但我在过去使用过div的name属性,它工作得非常好。我从未想过使用
.find()
。有了它,我可以轻松地将divTwo重新分配给
wrapInner()
创建的新元素。