Rue*_*eta 12 html javascript jquery select
今天我的工作堆栈.我的堆栈在这里:
我有一个select html元素,它有MULTIPLE模式:
<select class="test" MULTIPLE></select>
Run Code Online (Sandbox Code Playgroud)
(MULTIPLE模式也输入:multiple ="multiple"i included here here)
<select class="test" multiple='multiple'></select>
Run Code Online (Sandbox Code Playgroud)
现在我只想在许多普通的select元素中选择这个元素:
<select class="test" ></select>
<select class="test" ></select>
<select class="test" multiple='multiple'></select>
<select class="test"> </select>
Run Code Online (Sandbox Code Playgroud)
我正在使用这样的jQ:
$(".test[!MULTIPLE]").css('border','solid 1px red');
Run Code Online (Sandbox Code Playgroud)
但是所有选择元素都有边框红色;
我怎样才能获得选择元素MULTIPLE.并选择不是MULTIPLE模式?
Ken*_*ler 15
试试这个:
$(".test:not([multiple])").css('border','solid 1px red');
Run Code Online (Sandbox Code Playgroud)
编辑:正如Reigel所提到的,如果避免使用jQuery伪选择器,则可以获得具有更好性能的相同结果集:
$(".test").not([multiple]).css('border','solid 1px red');
Run Code Online (Sandbox Code Playgroud)
编辑2:从评论中可以看出,一些快速测试表明,至少对于我们中的一些人来说,第二个选项实际上更慢.根据css3.info进一步深入研究,对:notCSS3选择器的原生支持比我想象的要广泛得多.这可能会有所不同(对不起IE7),假设jQuery在可用时使用本机选择器.
编辑3:进一步感谢@nickf,他在IE8中运行了这些测试,并发现两者之间没有实质性区别.鉴于所有这些歧义,最好在目标浏览器中测试jQuery伪选择器,或者:not/ .not具体地,是否属于对性能有重大影响的代码热点(如果你有一个受控的目标浏览器环境) ).
但是如果您的目标是所有浏览器,那么最好的建议是使用最适合您代码的方法,并避免过早优化.