在html锚标记href元素中添加一些javascript

时间:2011-01-20 23:52:42

标签: javascript jquery random

快速javascript问题...

我不会满足于你的需要(我只想说IE),但我需要以下HTML:

href="includes/jwplayer/player.swf?3&file=nicki.mp4"

通过javascript生成一个随机数,其中'3'在上面的示例中。所以喜欢:

href="includes/jwplayer/player.swf?[RANDOM NUMBER CODE HERE]&file=nicki.mp4"

我知道js代码是:

Math.floor(Math.random() * 1000)

但是我怎么能用Html来适应呢?

一些php(或类似的)是唯一的答案吗?

一个。

3 个答案:

答案 0 :(得分:3)

如果“将其与Html相符”意味着“将随机数添加到每个看起来像这样的链接”,那么这样的事情会做到:< / p>

$("a[href^=includes/jwplayer/player.swf]").attr("href", function (i, s) {
  return s.replace( /\?\d*&?/, "?" + Math.floor(Math.random() * 1000) + "&" );
})

如果在您的情况下不是<a>元素带有href,请相应地更改选择器。

正则表达式说:

\?   # a question mark
\d*  # any number of digits (to replace what's already there)
&?   # an optional ampersand

答案 1 :(得分:1)

您可以通过客户端脚本进行设置,但如果用户关闭了JavaScript,则会中断。最好从服务器端设置它,在你的情况下听起来像PHP。

答案 2 :(得分:0)

使用原生javascript,您可以放入“非随机”链接,并使用JavaScript原生的setAttiribute方法将其随机化

var r = Math.floor(Math.random() * 1000);
document.getElementById('an-id-of-the-link').setAttribute('href', 'includes/jwplayer/player.swf?' + r + '&amp;file=nicki.mp4');

请注意,对于较旧版本的浏览器,选择对象会变得更难,因此getElementById是大多数浏览器中安全的少数几种方法之一。