0

我正在尝试在我的网站上使用 Anarchy Media Player,但不得不稍微更改代码,因为我的媒体文件/网址不是标准格式。它现在提取视频文件,但 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...
    }
}

谢谢您的帮助。

4

4 回答 4

3

不知道为什么你不只是这样做:

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...
    }
}

那应该对你有用。请注意,我存储了数组长度的值,因此您不必每次迭代都查找它。最小,但确实略微提高了性能。

当您在 if 语句中进行设置时,您还设置idName了视频idName="video",而不是比较(这将始终返回 true,这是您的问题)。使用双等号运算符 (==) 或三等号运算符 (===) 比较值。

于 2012-04-13T01:11:22.830 回答
0

没有 idName 属性。只是o.id。而且只能有一个 id,所以这可能会导致一些问题。此外,您正在分配它,而不是比较总是评估为 true 的相等性。如果您有多个类,例如class="amplink someOtherClass"!= amplink 将评估为真。最好对 className 进行匹配。像这样:&& !o.className.match(/ampLink/)

在另一个班级制作视频并进行比赛。

于 2012-04-13T01:47:09.360 回答
0

你确定你不是这个意思if (o.className == "amplink")

除此之外,您所拥有的一切都很好(除了o.idName="video"始终返回 true 的位):http: //jsfiddle.net/VpMVe/

于 2012-04-13T01:15:03.880 回答
0

您可以使用querySelectorAll获取元素,但旧版浏览器不支持它(比 IE8、FF3.5、Opera 10、Chrome 4 和 Safari 3.1 更早)。它类似于使用 CSS 选择器(和 jQuery)定位元素。这是一个演示,让所有与类video的链接变红。

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

    }
}())​
于 2012-04-13T01:23:28.180 回答