Javascript 仅getElementsByTagName特定链接

Javascript 仅getElementsByTagName特定链接,javascript,getelementsbytagname,Javascript,Getelementsbytagname,我试图在我的网站上使用无政府媒体播放器,但由于我的媒体文件/URL不是标准格式,我不得不稍微更改代码。它现在提取视频文件,但javascript正在查找所有链接并尝试向其中添加播放器。我甚至在视频链接中添加了id“video”,但仍然可以找到页面上的所有链接,并向其中添加播放器。 我如何分离这些链接,使玩家只添加到它们 以下是javascript中查找链接的部分: var all = document.getElementsByTagName('a'); for (var i = 0, o; o

我试图在我的网站上使用无政府媒体播放器,但由于我的媒体文件/URL不是标准格式,我不得不稍微更改代码。它现在提取视频文件,但javascript正在查找所有链接并尝试向其中添加播放器。我甚至在视频链接中添加了id“video”,但仍然可以找到页面上的所有链接,并向其中添加播放器。 我如何分离这些链接,使玩家只添加到它们

以下是javascript中查找链接的部分:

var all = document.getElementsByTagName('a');
for (var i = 0, o; o = all[i]; i++) {
    if(o.idName="video" && o.className!="amplink") {
        // Add player code...
    }
}

谢谢你的帮助。

不知道你为什么不这么做:

var all = document.getElementsByTagName('a');
for (var i = 0, len = all.length; i<len; i++) {
    if(all[i].idName=="video" && all[i].className!="amplink") {
        // Add player code...
    }
}
var all=document.getElementsByTagName('a');

对于(var i=0,len=all.length;i不确定您为什么不这样做:

var all = document.getElementsByTagName('a');
for (var i = 0, len = all.length; i<len; i++) {
    if(all[i].idName=="video" && all[i].className!="amplink") {
        // Add player code...
    }
}
var all=document.getElementsByTagName('a');

对于(var i=0,len=all.length;i你确定你的意思不是
如果(o.className==“amplink”)


除此之外,您拥有的一切都很好(除了总是返回true的
o.idName=“video”
位):

您确定您的意思不是
如果(o.className==“amplink”)


除此之外,您拥有的一切都很好(除了总是返回true的
o.idName=“video”
位):

您可以使用获取元素,但它是(比IE8、FF3.5、Opera 10、Chrome 4和Safari 3.1更旧)。它类似于使用CSS选择器(和jQuery)来定位元素.下面是所有与类
视频
的链接变为红色

function get(selector) {
    return document.querySelectorAll(selector)
}

(function() {
    //get all <a> with class "video"
    var video = get('a.video');

    //for each, turn them red
    for (var i = 0; i < video.length; i++) {
        video[i].style.color = 'red';

        //in your case, do whatever you want for each target here

    }
}())​
函数get(选择器){
返回文档。querySelectorAll(选择器)
}
(功能(){
//通过课堂“视频”获取所有信息
var video=get('a.video');
//对于每一个,将它们变成红色
对于(变量i=0;i
您可以使用获取元素,但它比IE8、FF3.5、Opera 10、Chrome 4和Safari 3.1更旧。它类似于使用CSS选择器(和jQuery)来定位元素。下面是使用类
视频的所有链接变为红色

function get(selector) {
    return document.querySelectorAll(selector)
}

(function() {
    //get all <a> with class "video"
    var video = get('a.video');

    //for each, turn them red
    for (var i = 0; i < video.length; i++) {
        video[i].style.color = 'red';

        //in your case, do whatever you want for each target here

    }
}())​
函数get(选择器){
返回文档。querySelectorAll(选择器)
}
(功能(){
//通过课堂“视频”获取所有信息
var video=get('a.video');
//对于每一个,将它们变成红色
对于(变量i=0;i
没有idName属性。它只是
o.id
。并且只能有一个id,因此可能会导致一些问题。此外,您正在分配它,而不是比较是否相等,而相等值总是计算为true。如果您有多个类,例如
class=“Amlink someOtherClass”
!=amplink将计算为true。最好对类名进行匹配。如下所示:
&&&!o.className.match(/amplink/)


在另一个类上制作视频并进行匹配。

没有idName属性。它只是
o.id
。并且只能有一个id,因此这可能会导致一些问题。此外,您正在分配它,而不是比较始终计算为true的相等性。如果您有多个类,例如
类=“amplink someOtherClass”
!=amplink将计算为true。最好对类名进行匹配。如下所示:
&&&&!o.className.match(/amplink/)


在另一个类上制作视频并进行匹配。

为什么不?@ajax333221因为IE…虽然使用jQuery不是个坏主意。为什么不?@ajax333221因为IE…虽然使用jQuery不是个坏主意。@Elliot,这似乎不起作用,但我最终在div id=video中包装了链接并使用var all=document.getElementById(“视频”).getElementsByTagName(“a”);谢谢你。现在我面临着不同的问题,需要识别媒体类型以只触发所需的播放器。我可能需要启动新线程。是的,这就是我建议做的。@Elliot,非常感谢你的帮助:)@Elliot,这似乎不起作用,但我确实在divid=video中包装了链接,并使用var all=document.getElementById(“视频”).getElementsByTagName(“a”);谢谢你。现在我面临着不同的问题,需要识别媒体类型,以便只触发所需的播放机。我可能需要启动新线程。是的,这就是我建议做的。@Elliot,非常感谢你的帮助:)