$(this).find('input [type =“submit”]:not(.cancel),button')。click(function() - 这是什么?

时间:2011-10-12 19:53:12

标签: jquery jquery-selectors

有人可以帮我理解这行jquery代码吗?:

$(this).find('input[type="submit"]:not(.cancel), button').click(function ()

我对.cancel特别感兴趣,因为整个jquery代码块(此处未包含)用于验证页面,如果用户点击取消,我试图阻止验证按钮。我猜测上面的代码行说是单击提交按钮不是取消按钮,然后继续。

但我不知道如何将按钮指定为取消。

5 个答案:

答案 0 :(得分:12)

基本上它正在寻找位于this内且具有以下要求的元素

  1. 是输入
  2. 有type = submit
  3. 没有cancel
  4. OR

    1. 是一个按钮

答案 1 :(得分:9)

这里的答案很好。也许这个带注释的版本增加了一些价值。

$(this)                   // within this jQuery object
  .find('                 // find all elements
    input[type="submit"]  // that are input tags of type "submit"
    :not(.cancel)         // and do not have the class "cancel"
    ,                     // or
    button                // are button elements
  ')
  .click(                 // and for each of these, to their click event
    function (){}         // bind this function
  );

答案 2 :(得分:2)

他们正在应用一个名为cancel的CSS类来基本上对取消按钮进行符号化(然后检查它是一个没有这个类的按钮)

虽然我不知道你可以在CSS类名中使用星号(*)。

没关系,你试图在代码块中加粗代码

我也很好奇他们为什么要取消按钮类型提交,因为他们想要取消它。 (如<input type="button" ... />似乎更合适。)

答案 3 :(得分:2)

.cancel是一个类选择器。具体来说,它正在查找input个元素,其type属性设置为submit,但没有cancel类。它还会查找tagName为button的元素。

您可以“将按钮指定为取消”,如下所示:

<input type='submit' class='cancel' />

答案 4 :(得分:1)

基本上是选择器说 给我提交没有取消类和按钮的按钮并应用点击处理程序。 尝试查找以下选择器

标签 。类 :不