我正在尝试在我的网站上使用Anarchy Media Player,但由于我的媒体文件/网址不是标准格式,因此不得不更改代码。它现在拉取视频文件,但javascript正在查找所有链接并尝试添加播放器。我甚至将id“视频”添加到视频链接中,但仍然可以找到页面上的所有链接并添加播放器。 如何将这些链接分开才能将玩家添加到他们中?
以下是查找链接的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...
}
}
感谢您的帮助。
答案 0 :(得分: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,这是您的问题)。使用双等于运算符(==)或三等于运算符(===)来比较值。
答案 1 :(得分:0)
您确定不是if (o.className == "amplink")
吗?
除了你所拥有的一切都很好(总是返回true的o.idName="video"
位除外):http://jsfiddle.net/VpMVe/
答案 2 :(得分:0)
你可以使用querySelectorAll获取元素,但它是not supported in older browsers(比IE8,FF3.5,Opera 10,Chrome 4和Safari 3.1更旧)。它类似于使用CSS选择器(和jQuery)定位元素。这里a demo将所有与班级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
}
}())
答案 3 :(得分:0)
没有idName属性。它只是o.id
。并且只能有一个id,因此可能会导致一些问题。你也要分配它,而不是比较总是评估为真的相等性。如果您有多个课程,例如class="amplink someOtherClass"
!= amplink将评估为true。最好在className上进行匹配。像这样:&& !o.className.match(/ampLink/)
在另一个类上制作视频,然后进行匹配。