有没有办法使用JQuery将CSS从一个元素剪切,粘贴或克隆到另一个元素?

时间:2010-05-13 16:46:33

标签: jquery

我遇到的情况是我用一个跨度包装图像,我想从图像中删除所有CSS并将其应用到跨度。有没有办法用JQuery做到这一点?

JQuery的:

$(img).wrap('<span />');

样式表:

img { border: 5px solid red; padding: 10px; … needs to allow for anything }

我想在编辑HTML或CSS时这样做。我需要一种方法来真正从一个元素中删除CSS并将其放在另一个元素上。

4 个答案:

答案 0 :(得分:1)

还有toggleClass(),如果它不在元素上,它只是应用它,如果它已经删除它。

$("#imageIDHere,#otherThing").toggleClass("theClass");

我有一种感觉,看着你的问题,你正在计划某种动态的CSS结构。你可以使用像jQuery plugin之类的东西动态地更改类,CSS选择器及其属性。但是,在没有任何类结构或总体系统的情况下这样做很可能会引起很多麻烦。

答案 1 :(得分:0)

您不能只将CSS类应用于范围(并从图像中删除)吗?

请参阅.addClass.removeClass

答案 2 :(得分:0)

我可能会这样做:

/*CSS*/
.style{border:solid 1px red;}

/*JQuery*/

$("#imageIDHere").removeClass("style");
$("#spanIDHere").addClass("style");

/*or*/

$("#imageIDHere").removeClass("style").parent().addClass("style"); //assuming the span is the parent of the image

答案 3 :(得分:0)

您可以使用 removeClass removeAttr 删除符合您要求的样式。

<强>示例:

$('selector').removeClass('some_class'); // this removes some_class
$('selector').removeClass(); // this removes all classes
$('selector').removeAttr('class'); // this removes inline classes
$('selector').removeAttr('style'); // this removes inline styling
$('selector').removeAttr('id'); // this removes id styling