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

在html锚定标记href元素中添加一些javascript,javascript,jquery,random,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(M

快速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(或类似的)

A.

如果“将其与Html结合”意味着“在每个看起来像这样的链接中添加一个随机数”,那么类似这样的内容就可以做到:

$("a[href^=includes/jwplayer/player.swf]").attr("href", function (i, s) {
  return s.replace( /\?\d*&?/, "?" + Math.floor(Math.random() * 1000) + "&" );
})
如果不是
元素携带
href
,请相应地更改选择器

regex说:

\?   # a question mark
\d*  # any number of digits (to replace what's already there)
&?   # an optional ampersand
如果“fit this in the Html”的意思是“为每个看起来像这样的链接添加一个随机数”,那么类似这样的操作就可以了:

$("a[href^=includes/jwplayer/player.swf]").attr("href", function (i, s) {
  return s.replace( /\?\d*&?/, "?" + Math.floor(Math.random() * 1000) + "&" );
})
如果不是
元素携带
href
,请相应地更改选择器

regex说:

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

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

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

对于本机javascript,您可以放入一个“非随机”链接,并使用javascript本机的setAttribute方法对其进行随机设置

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

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

对于本机javascript,您可以放入“非随机”链接,并使用javascript本机的SetAttribute方法将其随机化

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

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

很好的方法,我个人会根据数据文件值动态更改整个
href
,+1是jQuery吗?我认为您需要
attr()
方法,当然,不要相信
href
@Russ有这样的方法。谢谢你提醒我。(现已修复)此外,您不会丢失文件参数吗?此外,回调包含一个键和一个值,因此您必须使用:
函数(k,s){}
,这也将解决您的问题。我个人会根据数据文件值动态更改整个
href
,这是jQuery吗?我认为您需要
attr()
方法,当然,不要相信
href
@Russ有这样的方法。谢谢你提醒我。(现已修复)此外,您是否会丢失文件参数?此外,回调包含一个键和一个值,因此您必须使用:
函数(k,s){}
,这也将修复您的问题Adi+1,我也会这样做。如果只是一个缓存破坏器,你也可以在客户端做,但在服务器上做会更干净。+1,我也会这么做。如果它只是一个缓存断路器,您也可以在客户端执行,但在服务器上执行会更干净。这不是一个好的解决方案,因为文件参数显然会发生变化。在这两种情况下,文件名或路径都将由服务器端语言提供。仅在链接中填充或将其放入脚本中也很合适,只需替换文件名(即当前在'file=nicki.mp4'中显示的文件名)同样容易。这不是一个好的解决方案,因为文件参数显然会发生变化。在这两种情况下,文件名或路径都会由服务器端语言提供。仅在链接中填充或将其放入脚本中也很合适,只需替换文件名(即当前在'file=nicki.mp4'中显示的文件名)同样容易。你说得有道理,那可不好看。