【问题标题】:jquery: Can you string find selectors togetherjquery:你能把找到选择器串在一起吗
【发布时间】:2012-05-13 09:45:59
【问题描述】:

我正在尝试为客户编写一些特殊的验证代码。我想在 jquery 的 find 函数中将几个选择器串在一起,这可能吗?

我想说的是,例如,在当前可见的字段集中,找到所有 type=text 且具有类“-required”的输入字段,还找到所有也具有类“的 textarea 字段” - 必需”。

我正在尝试这个,但它不起作用,它只选择 Textarea 字段

var reqButEmpty = $('fieldset:visible')
.find('input[type="text", class*="-required",textarea[class*="-required"]')
.filter(function()

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:
    var reqButEmpty = $('fieldset:visible')
     .find('input[type="text"].-required, textarea.-required')....
    

    你有几个错误:

    • 您没有终止属性选择器:[type="text", ...
    • ,class*=正在寻找类型类的元素,(<class>)
    • 如果你想要一个类选择器,只需在它前面加上一个点。

    更新:

    var reqButEmpty = $('fieldset:visible')
     .find('input[type="text"], textarea').filter(function(){
         return this.className.indexOf("-required") >= 0;
     });
    

    或者按照 @cliffs of insanity 的建议

    var reqButEmpty = $('fieldset:visible')
     .find('input[type="text"], textarea').filter('[class*="-required"]');
    

    【讨论】:

    • 嗨 Gdoron - 很抱歉这个对我不起作用,因为我需要说“-require”是类名的一部分,而不是专门选择一个类名 -required。跨度>
    • @user1176783/ 我更新了我会这样做的方式。只要其中一个元素类是-required,第一个选项就可以工作,如果它可以是a-required-requiredb,请使用第二个选项。
    • 你必须用内部filter函数返回一个值。
    • +1 我认为过滤器比长而丑陋的选择器更好。另一种选择是.filter('[class*="-required"]')
    • @cliffsofinsanity。我添加了带有你名字的选项。虽然我更喜欢函数选项,但它必须更快并且更易于阅读 IMO。
    【解决方案2】:

    你可以,但不是你尝试的方式

    .find('input[type="text"][class*="-required"],textarea[class*="-required"]')
    

    为了获得“与”行为,我们在同一个元素选择器上使用两个单独的“属性”选择器。

    然后我们使用, 多重选择器来获取textarea 的“或”行为。

    我还假设-required 是类名的一部分,而不是全部。一些 HTML 参考会很有帮助。

    【讨论】:

    • 我不太明白 - 你能提供例子吗?
    • @user1176783:示例在答案中。不能共享一个属性选择器,但是可以将两个属性选择器应用到input,所以我做了input[type="text"][class*="-required"],这将要求类型是"text",并且它的类包含"-required"。跨度>
    • 啊,我现在看到了 - 对此感到抱歉 - 乍一看,它看起来像我的代码。谢谢!!!!
    • @user1176783:你很亲密。你的选择器只是有点畸形。不客气。
    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多