可以使用$(this)和通用选择器(*)吗?

时间:2015-12-27 16:16:06

标签: javascript jquery html css3

我想知道是否可以使用@3x的通用选择器。 例如,当我想从元素及其子元素中删除所有内联CSS时,我使用以下代码:

$(this)

但如果我有$('#element, #element *').attr('style',''); 代码是什么?

也许我必须尝试:

$(this)

6 个答案:

答案 0 :(得分:12)

您可以使用find()

$(this).find('*').attr('style','');

或上下文选择器

$('*', this).attr('style','');

使用$('#element *')

this做同样的事情

如果this表示的元素应该是集合的一部分,则可以将其添加回来

$(this).find('*').addBack().attr('style','');

我倾向于在评论中同意Rory McCrossan,使用父元素和外部样式比改变多个元素的样式属性更可取

.element.styled * { /* styles for all children */ }

然后只是

$('.element').removeClass('styled')

删除子项上的样式

答案 1 :(得分:2)

您可以使用jQuery' .children()

$(this).children().attr('style','');

但是,这只会降低一个级别,因此您也可以使用.find()

$(this).find('*').attr('style','');

查看https://jsfiddle.net/joe_young/zofhwca6/

答案 2 :(得分:2)

您可以找到孩子,然后使用removeAttr

$(this).children().removeAttr('style');

OR

$(this).find('*').removeAttr('style');

答案 3 :(得分:2)

jQuery find methode将起作用:

$(this).find(selector);

答案 4 :(得分:1)

您可以使用:

$(this).find('*').removeAttr('style');

甚至是上下文:

$('*', this).removeAttr('style');

答案 5 :(得分:0)

$(this).children()可用于选择孩子     此外,您可以像$(this).children('.classname')

那样具体

Simillarly $(this).parent()可用于选择它的父级