ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-jQuery:是否可以在一个选择器中同时测试输入类型和属性?

2019-11-02 14:36:40  阅读:180  来源: 互联网

标签:jquery-selectors javascript jquery


我有一个输入元素列表,并使用一个选择器我想找到那些

>是复选框
>设置值属性

我可以这样做吗?

我试过了:

> $(items).find(“ input:checkbox [value]”)
> $(items).find(“ input [value]:checkbox”)

但是两者都忽略[value],仅测试输入:复选框.

当然,我可以使用两个选择器,但是只有一个更好.

我的基本用例是this.

基本上,我想根据是否未选中其他复选框对复选框进行一些操作.在此示例中,由于“ getChildrenCheckboxes”函数中的jQuery选择器“ input [value]:checkbox”与“ No Child”复选框以及其他复选框匹配,因此仍选中“ parent”复选框.

解决方法:

首先,如果人们花时间为您提供答案,那么您至少可以花一些精力来接受这些答案.

其次,关于您的问题,您可以使用filter()或检查value是否为空:

$('input[value!=""]:checkbox').addClass('selected');

http://jsfiddle.net/niklasvh/pEK3c/

要么

$('input:checkbox').filter(function(){
 return this.value.length;   
}).addClass('selected');

例如:http://jsfiddle.net/niklasvh/duAB8/

编辑

关于为什么不只使用$(‘input [value]’)来检查值的问题,首先取决于您是否要知道其值是否为空,其次,也许是最重要的是,您是否希望它在不同的浏览器上都能一致地工作?

以下标记:

<input type="checkbox" value="2" />
<input type="checkbox" value="" />
<input type="checkbox"  />
<input type="checkbox" value="23" title="a" />

使用以下选择器:

$('input:[value]:checkbox').prop('checked',true);

将给出以下结果:

Chrome 11, X - - X
FF4,       X - X X
IE 8,      X - X X

那么,您是否想知道该属性是否已定义或是否为空?如果是第一个选择器,则可以预期该选择器的差异结果.其中,前两个示例都给出了X–X的一致结果.

如果您要寻找[title]属性,那将是完全不同的故事…

标签:jquery-selectors,javascript,jquery
来源: https://codeday.me/bug/20191102/1992156.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有