如何在javascript中访问自定义html属性?

时间:2012-09-08 04:57:28

标签: javascript html

您好我在这个HTML文档中遇到问题请帮帮我

我对此很新。

我可能会因为遗漏某些东西而感到愚蠢。

我在这里只提供了有用的资源来解决。

<!DOCTYPE html>
<html>
  <body id="owner_profile">
    <a id="buy" owner="789" token="1000" wrapper="purchase" name="oname">Hurray!</a><br>
    <script>
      document.write("You Have: ");
      document.write(document.getElementById('buy').token);
    </script>  
  </body>
</html>

我希望它显示令牌,但它给出未定义的

结果是:

乌拉!

你有:未定义

2 个答案:

答案 0 :(得分:5)

属性和属性之间存在差异。要获取该属性,请使用getAttribute("token")

许多(预定义)属性映射到属性(或者反过来,我不知道)。例如,如果您设置了单元格的colSpan属性,则还会影响其colspan属性。

然而,有时两者是非常不同的。最值得注意的是,如果您在框中输入,则输入的value属性不会更改。但是value属性会。这意味着您始终可以使用elem.value = elem.getAttribute("value")重置文本框。

作为一般规则,您应该始终使用get/setAttribute来更改元素属性,因为您不能依赖于那里的属性。

旁注:那些“属性”应该是数据:

<a id="buy" data-owner="789" data-token="1000" data-wrapper="purchase" name="oname">

答案 1 :(得分:1)

您需要使用.getAttribute('token')代替.token,因为“令牌”不是有效的HTML属性。

<script>
document.write("You Have: ");
document.write(document.getElementById('buy').getAttribute("token"));
</script>

使用JSFiddle:http://jsfiddle.net/AvKbn/