Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/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
Javascript 使用多个选择器和一个类获取dom元素的快捷方式?_Javascript_Jquery_Css_Dom - Fatal编程技术网

Javascript 使用多个选择器和一个类获取dom元素的快捷方式?

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') 请注意,我已经意识到如下情况:

我想知道是否存在这样的情况,不带过滤器(我正在寻找快捷方式),带有jQuery的集合或本机queryselector所有:

$('(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,因为我的方式——在我问题的最后——更为准确和清晰(新手)我应该回答我自己的问题吗?