javascript - 从 jQuery 选择器中排除具有特定属性的元素

原文 标签 javascript jquery css-selectors

我正在使用此 javascript 在聚焦时清空输入/文本区域。

   $(document).ready(function() {
    $('input[type="text"],textarea').not('[readonly="readonly"]').addClass("idleField");
    $('input[type="text"],textarea').focus(function() {
        $(this).removeClass("idleField").addClass("focusField");
        if (this.value == this.defaultValue){
            this.value = '';
        }
        if(this.value != this.defaultValue){
            this.select();
        }
    });
    $('input[type="text"],textarea').blur(function() {
        $(this).removeClass("focusField").addClass("idleField");
        if ($.trim(this.value) == ''){
            this.value = (this.defaultValue ? this.defaultValue : '');
        }
    });
   });

我正在寻找一种方法来排除那些 input字段,设置为 readonly通过 readonly="readonly" .我知道我应该使用 .not (我猜),但我不知道如何。

最佳答案

如果您想要所有可写的输入元素(非只读),您可以使用以下选择器:

$("input:not([readonly])")

:not后面的参数是要匹配的选择器。 [readonly] 将匹配设置为 readonly 的任何内容。请注意,以下内容并不总是有效:
[readonly="readonly"]

因为你可以同时拥有这两个:
<input readonly type="text">
<input readonly="readonly" type="text">

你也可以使用 ":input"伪选择器代替 "input,textarea"。查看文档 here .

关于javascript - 从 jQuery 选择器中排除具有特定属性的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4406259/

相关文章:

javascript - 如何处理异步axios api调用

javascript - 通过JS和API将消息发布到Slack

javascript - MVC/JavaScript/Razor-如何通过按钮打开新 View

css - jQuery UI奇怪的冗余CSS选择器?

xpath - 将XPath与CasperJS QuerySelectorAll一起使用不起作用

javascript - 在javascript中总结表格的红色行,然后改变表格

javascript - 如何将缓存中的文件与服务器中的文件进行比较

javascript - 如何使用d3.js在圆内创建voronoi图

javascript - 如何基于另一个元素的剩余值向一个元素添加类?

css - 如何选择 * 但排除 <body>?或者将 <body> 设置为默认样式?