【问题标题】:jQuery .attr retrieving custom attribute returns undefinedjQuery .attr 检索自定义属性返回未定义
【发布时间】:2011-09-12 07:47:40
【问题描述】:

我在使用 jquery 时遇到以下问题。

我有这样的东西

<div id="yxz" value="1">
  <span class="delete"></span>
</div>

现在我有了这个 fn,但它只返回“未定义”,但如果我要求,它确实返回 id 或类。

$(".delete").click(function(){
  alert($(this).parent("div").attr("value"));
});

我曾经用相同的 attr 东西来获得这个值。这与我现在使用 jquery 1.6.1 而不是 1.5.2 有关系吗?

感谢您的帮助。

【问题讨论】:

    标签: jquery attr


    【解决方案1】:

    我可以确认此代码 sn-p 使用 jQuery Git 版本在 Chrome 11、Firefox 4 和 IE 9 中完美运行。

    编辑:对于建议 prop() 的人,请检查 docs。 Prop() 用于布尔属性,例如:选中、禁用等。

    【讨论】:

      【解决方案2】:

      要检索元素的值,请使用val()。由于 div 没有值,因此您应该使用data() 来设置和获取数据。

      【讨论】:

      • 好吧,我并没有真正使用 data() 因为我的值来自数据库并且已经存在,但是使用 data="1" 而不是 value="1" 而不是 .attr("数据”)确实有效。使用 jquery 1.5,价值的东西也很有效。
      • @Lukas:我认为他的意思是让你使用data-value="1",然后使用.data('value')
      • 实际上,数据函数并没有为元素设置任何属性。它只是一个内部映射,将数据存储到给定元素。但是,“值”是一种保留的东西,在这种情况下应该避免。很高兴你完成了。
      • 我自己也发现了这一点,但还是谢谢。我现在按照您的建议使用它。 :)
      【解决方案3】:

      是的,从 jQuery 1.6 开始,我认为您需要使用 .prop() 而不是 attr()

      【讨论】:

        【解决方案4】:

        使用 jQuery 1.6,您的代码在 this fiddle 中似乎可以正常工作

        【讨论】:

          【解决方案5】:

          如果使用最新的 jQuery,请尝试:

          $.prop(propertyName);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-08-20
            • 2014-01-19
            • 1970-01-01
            • 2015-09-06
            • 1970-01-01
            • 2012-06-15
            • 1970-01-01
            相关资源
            最近更新 更多