【问题标题】:jQuery selectors with more than 1 criteria具有超过 1 个条件的 jQuery 选择器
【发布时间】:2011-07-27 03:23:50
【问题描述】:

尝试做一些非常明显的事情,但它有点没有任何意义/不适合我......

想法很简单,当加载文档时 $(document).ready() 获取所有具有属性 type="text" 的输​​入元素并添加 css 类 "textbox" ...

<script type="text/javascript">
    $(document).ready(function () {
        var textboxes = $(":input [type = 'text']");
        textboxes.each().addClass("textbox");
    });
</script>

任何想法为什么这不起作用? ...

编辑:

哇 .. 仍然有很多关于 jquery-isms 的知识要学习...不过开始喜欢 jquery :) 它的简单性确实有效。

【问题讨论】:

  • 您不必遍历元素。如果您在选择器上执行方法,它们将(大部分时间)应用于选择器匹配的所有元素。
  • 你们的速度很快!!!!

标签: javascript jquery asp.net html css


【解决方案1】:
$(document).ready(function () {
    $("input[type='text']").addClass("textbox");
});

元素input之前不需要冒号。

$("input[type='text']") 将引用所有元素,因此不需要each()

【讨论】:

    【解决方案2】:

    代码中的主要问题是:input 伪选择器和type attr 选择器之间有一个空格。删除空间作品。

    也就是说,.each() 意味着接收一个函数,该函数应该在匹配集合中的每个元素上运行。然后它返回集合以进行进一步的链接。在您的示例中,给定的每个都是无用的,所以我将其删除。进一步调整以使 swlector 正确但有效地匹配应该满足您的需求:

    $( function()
    {
        $( 'input[type="text"]' ).addClass( 'textbox' );
    } );
    

    【讨论】:

      【解决方案3】:

      也许我遗漏了一些东西,但这不应该有效吗?

      <script type="text/javascript">
          $(document).ready(function () {
              $("input[type = 'text']").addClass("textbox");
          });
      </script>
      

      您首先评估 var 是否有某些原因?

      【讨论】:

      • @Boswirth99:当然:如前所述,不需要each() :)
      • input[ 之间的空格很重要。这将在input 元素中查找具有等于texttype 属性的任何元素。
      • @Bosworth99:我投了反对票,因为你的回答不起作用。因此,请接受反对票。为什么我不会对无效答案投反对票? jsfiddle.net/ssFf8
      • @Bosworth99:关于这个我要说的最后一件事。否则这将引发讨论(不是已经:P)。每个人都讨厌开车兜风,您不必喜欢被否决的事实:)。然而,downvote 系统已经到位,以确保好的/最佳答案得到 OP 和其他查看线程的用户的最大关注。这是游戏的一部分。 Yuo 不想知道到目前为止我得到了多少反对票:D 要么我自己很愚蠢/一些随机的无法解释的反对票。 :D
      • @PeeHaa - +1 答案的道具。干杯老兄。
      猜你喜欢
      • 2017-08-30
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2015-08-15
      • 2020-07-18
      • 2013-07-17
      相关资源
      最近更新 更多