我遇到了如下问题:
我有一段JavaScript可以阻止在我的网站上弹出难看的链接标题。
window.onload = function() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var link = links[i];
link.onmouseover = function() {
this.setAttribute("org_title", this.title);
this.title = "";
};
link.onmouseout = function() {
this.title = this.getAttribute("org_title");
};
};
};
这完全符合我的需要。
但是,现在我想使用Swipebox插件,它使用“a title”字段作为标题。由于标题在鼠标悬停时被删除,因此它显示为我点击的图库中的图像没有标题(图库中的其他人仍显示其中的标题)。
我想做的是,对于我上面的JavaScript,定位所有没有“swipebox”类的“a”元素。
任何帮助都将不胜感激。
答案 0 :(得分:3)
如果包含在你的循环中,这样的东西应该有效:
if(link.className.indexOf('swipebox') === -1){
// do your magic
}
这将检查元素的类中是否存在swipebox
,并且只有在它不存在时才进行魔术。
修改强>
@ raina77ow的精彩推荐!
if(!(/\bswipebox\b/.test(link.className))){
// do your magic
}
RegEx测试以确保swwordbox在类名中不以任何形式存在。这应该很好地涵盖了你所有的基地。
答案 1 :(得分:1)
你可以这样做:
window.onload = function() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var link = links[i];
if(link.getAttribute("class").indexOf("swipebox") == -1) {
link.onmouseover = function() {
this.setAttribute("org_title", this.title);
this.title = "";
};
link.onmouseout = function() {
this.title = this.getAttribute("org_title");
};
}
};
};
编辑:正如PlantTheIdea所说,在这种情况下使用getAttribute()
更有意义......
答案 2 :(得分:0)
您可以使用以下代码:
if (link.className == null || link.className != "swipebox") {
[...your two onmouseover/onmouseout functions...]
}