给我的超链接自定义属性

时间:2011-05-07 12:47:58

标签: javascript php jquery html

我想提供所有网址的属性。每页大约有400个。有时只有40,仅取决于正在查看的产品类型。

我想要这样的事情:

<a href="link.html" class="something" title="Click here to add this to your cart" partno="DBF-XJ3" qtyType="Box QTY" quantity="50">Stainless Steel Bolts</a>

如何做到这一点?

我知道在HTML5中存在某种数据,但我还是找不到它,所以也许我误读了某些地方。

基本上,当点击其中任何一个链接时,我会(PHP)将该产品插入数据库中的购物车。但是,基于任何给定链接的属性,我可能需要在将它们插入数据库之前进行一些计算/调整/等。

这似乎是唯一一种简单,合乎逻辑(并且有点有趣)的方法。但我不确定浏览器之间的兼容性,或者它是否有效。

2 个答案:

答案 0 :(得分:1)

你是对的,这是你正在寻找的data-属性。 [random reference]

您的链接看起来像这样:

<a data-partno="DBF-XJ3" data-qtyType="Box QTY" data-quantity="50">

在这里演示:http://jsfiddle.net/wesley_murch/ey2pg/

它实际上只是一个javascript钩子,因为jQuery似乎在我检查的所有浏览器(包括IE6)中都能很好地处理它,我会说它的“安全”使用。据我所知,你甚至可以编写属性,它可以使用jQuery(尽管不推荐)。这实际上是避免滥用reltitle等等(就像许多人一样)滥用javascript的最佳方法。

但是:我强烈建议您使用隐藏<form>的{​​{1}}(以及<input>来轻松设置样式)来提交值。另一种方法是在没有javascript的情况下破解,你可以在之后用jQuery增强它。

答案 1 :(得分:0)

你这样做:

$(document).ready(function(){
  $("a[href]").each(function(){
    if($(this).attr("href") == "link.html"){ //I put a condition here just in case you need one
      $(this).attr({
         "partno": "DBF-XJ3",
         "qtyType": "Box QTY",
         "quantity": "50"
      });
    }
  });
});

如果您的所有链接都需要相同的属性,则可以删除该条件。

希望这会有所帮助。干杯

PS:它适用于所有浏览器,但HTML5建议在您的自定义属性前加上“data-”前缀。示例data-partno="DBF-XJ3"