使用JavaScript if语句提供帮助

时间:2013-06-03 14:11:22

标签: javascript if-statement title caption

我遇到了如下问题:

我有一段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”元素。

任何帮助都将不胜感激。

3 个答案:

答案 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...]
}