【问题标题】:jquery v1.3.2 find element by attributejquery v1.3.2 按属性查找元素
【发布时间】:2010-10-16 08:49:05
【问题描述】:

我需要查找并遍历所有具有特定属性的子元素。以下代码在 jquery 1.2.6 中运行良好,但在 1.3.2 中抛出异常

$(parentElement).find('*[@someAttributeName]').each(function(index){
    doSomething(this);
});

实现这一目标的正确方法是什么?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    我相信,只要去掉@。

    $(parentElement).find('[someAttributeName]').each(function(index){
        doSomething(this);
    });
    

    来自 jQuery selector 文档:

    注意:在 jQuery 1.3 [@attr] 样式中 选择器被删除(它们是 以前在 jQuery 1.2 中已弃用)。 只需从您的 选择器以使它们工作 再次。

    【讨论】:

    • @ 符号来自原始 XPath 类型选择器 IIRC
    • 根据属性找到任何方法等于特定值?
    • 可以使用简单的$('div[someAttributeName]').each()按属性查找
    • @JasonPrawn - 这与 OP 在他的问题中所做的完全不同。
    【解决方案2】:

    我认为这是找到并可以改变它的最好方法

       $('.youritem').each(function(){
                              if($(this).attr('title') == 'add image')
                                               $(this).attr('id','imageuploader');
    
                            });
    

    【讨论】:

      【解决方案3】:

      当我想使用 required="" 查找输入时,在 IE 中对我不起作用。

      当我更改为 required="required" 时有效。也许其他组合也可以https://stackoverflow.com/a/3012975/588759

      【讨论】:

        【解决方案4】:

        [@attribute] 表示法在 jQuery 1.3 中已弃用。删除@ 符号,您就可以开始了。

        【讨论】:

          【解决方案5】:

          注意属性名称之前的“@”在 1.2 版中已被弃用。

          $(parentElement).find('*[someAttributeName]').each(function(index){
              doSomething(this);
          });
          

          只需将其删除即可。

          【讨论】:

            猜你喜欢
            • 2013-04-30
            • 2014-12-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-05-08
            • 2016-01-07
            相关资源
            最近更新 更多