getElementsByTagName setAttribute和regex javascript

时间:2009-10-16 05:43:53

标签: regex lightbox setattribute rel

我想将rel = lightbox放到mediabox支持的一些链接上使用javascript。

我试试这个并想知道为什么它不起作用?

测试:http://jsbin.com/opica

请帮忙修改:http://jsbin.com/opica/edit

<script  type="text/javascript">
var x=xmlDoc.getElementsByTagName("a");
var regexku=/^.+(((twit)|(tweet)|(com/video.+)|(flickr.com.+)|(tube.com.+))|((gif)|(jpe?g)|(png)|(flv)|(swf)|(mp3)|(mp4))$)/;

for(i=0;i<x.length;i++)
 {
a=x[i].getAttribute('href');
if (a.match(regexku) != null)
   {
   x.item(i).setAttribute("rel","lightbox");
   }
 }

</script>

2 个答案:

答案 0 :(得分:1)

因此,如果您打开错误控制台(Firefox中的工具 - &gt;错误控制台),您会在页面上看到两个错误:

Error: xmlDoc is not defined
Source File: http://jsbin.com/opica
Line: 35

Error: invalid regular expression flag v
Source File: http://jsbin.com/opica
Line: 21, Column: 38
Source Code:
var regexku=/^.+(((twit)|(tweet)|(com/video.+)|(flickr.com.+)|(tube.com.+))|((gif)|(jpe?g)|(png)|(flv)|(swf)|(mp3)|(mp4))$)/; 

后者通过转移斜线来修复,如Bart建议的那样(com\/video)。

前者说没有xmlDoc之类的东西。您可能是指页面的文档,在这种情况下,您应该将其替换为document

接下来整个事情可能无法正常工作,因为您应该在页面加载完成后运行脚本。在jQuery中它是$(document).ready(function() { /* do your work here */ }),谷歌如何使用您正在使用的任何框架(mootools-yui?)来实现它。

如您所见,在链接上设置了rel属性:http://jsbin.com/elaca/edit。你正在使用的任何库仍然无效的事实意味着你使用它错了。您甚至没有链接到您下载库的页面,以便有人可以为您查找文档...

答案 1 :(得分:0)

尝试在/com之间转义video