Javascript 使用多个选择器和一个类获取dom元素的快捷方式?
我想知道是否存在这样的情况,不带过滤器(我正在寻找快捷方式),带有jQuery的集合或本机queryselector所有:Javascript 使用多个选择器和一个类获取dom元素的快捷方式?,javascript,jquery,css,dom,Javascript,Jquery,Css,Dom,我想知道是否存在这样的情况,不带过滤器(我正在寻找快捷方式),带有jQuery的集合或本机queryselector所有: $('(select|input[type="text"]|textarea).myCssClass') 我希望所有的select、input text和textarea都使用myCssClasscss类 我也尝试过,但没有成功: $('(select, input[type="text"], textarea).myCssClass') 请注意,我已经意识到如下情况:
$('(select|input[type="text"]|textarea).myCssClass')
我希望所有的select、input text和textarea都使用myCssClass
css类
我也尝试过,但没有成功:
$('(select, input[type="text"], textarea).myCssClass')
请注意,我已经意识到如下情况:
$('form#myForm')
.find('select, input[type="text"], textarea')
.filter('.myCssClass')
.each(....)
需要快捷方式—我可能会错过阅读jQuery文档的机会。没有这种内置方法,但您可以轻松编写一个帮助函数,向其传递一组选择器,这些选择器与另一个选择器相连:
const组合选择器=(applyToAll,arr)=>arr
.map(str=>str+applyToAll)
。加入(‘,’);
$(组合选择器('.myCssClass',['select',input[type=“text”]','textarea']))
.each(函数({
$(this.css('background-color','blue');
});代码>
您可以在javascript中创建一个自定义函数,该函数将接受和类的元素数组。然后迭代该数组,并使用document.querySelectorAll
从dom中获取匹配类的所有元素<代码>文档。查询选择全部
将给出一个集合。您可以再次迭代它以针对每个元素并向其添加类
let className='myCssClass';
让elm=['input','textarea'];
函数addClaz(arr,className){
arr.forEach(功能(要素){
document.querySelectorAll(`${elem}[class='${className}`).forEach(函数(em){
em.classList.add('test')
})
})
}
addClaz(elm,className)
.test{
背景:绿色;
}
没有,因为这就是.filter
的用途,所以不需要有。感谢您的回答,@freedomn我相信,如果有,它会记录在jquery选择器页面上:-它非常全面。可能有一个插件或帮助器函数可以让快捷方式变得可用(以同样的方式,:
选择器是可扩展的),但不是直接内置到jquery中。.filter(function(){return$(this).hasClass('myCssClass'))
是一种非常复杂的编写.filter('.myCssClass')的方法
你说得对,@04FS。事实上,在我的代码中,它是一个更复杂的函数,我只保留了它的«substantifique moelle»。我更正了。谢谢你的帮助,但我正在寻找一个快捷方式,这是我在阅读jQuery文档时错过的。我可以用.filter构建这样一个函数。谢谢。@Philipperret不确定快捷方式的确切含义我也是。很抱歉我的英语不好。我的意思是“写长东西的短方法”。«('myClass'))»是«用myClass
css类编写每个domeElement的快捷方式。@Philipperret:没有比这两个答案中使用的方式更短的方式了。你为什么不接受第一个答案?它当然解决了你的问题!@Meziane,因为我的方式——在我问题的最后——更为准确和清晰(新手)我应该回答我自己的问题吗?