Jquery - 使用String选择元素

时间:2014-02-02 06:32:43

标签: javascript jquery

所以这是我的代码,如果窗口正在关闭,它将触发给定类名.window的函数和为每个不同函数窗口准备的唯一窗口名称。该函数将找到与窗口具有相同唯一名称的.taskbar-icon并删除类.active,以告知用户该窗口实际上已关闭。

窗口的唯一名称由我给出,并且应该只有一个唯一的窗口作为时间,这意味着不应该有2个具有相同唯一类名的元素,例如.window.q

function disappearWindow(target) {
    if(target.hasClass("q")) {
        $(".taskbar-icon.q").removeClass("active");
    }
    if(target.hasClass("f")) {
        $(".taskbar-icon.f").removeClass("active");
    }
}

disappearWindow($(".window.q"));

正如您在上面所看到的,每次插入新窗口时,我会给它一个类名,如qts等,而不是使用上面的代码,我必须添加另一个声明,没有生产力和浪费资源。

窗口应该只包含类window THE_ACTUAL_UNIQUE_NAME ui-draggable ui-resizable

所以我想要这样的事情:

function disappearWindow(target) {
    $(".taskbar-icon" + NAME_FROM_FUNCTION_CALLING).removeClass("active");
}

有没有办法提取名称,以便上面的代码可以减少“hacky”和更友好?或者做其他事情以达到相同结果的任何建议?

我不介意更改名字。

1 个答案:

答案 0 :(得分:0)

如果我没有误解并且完全明白你的观点,我认为以下代码应该有用。

function disappearWindow(selectorStr) {
    var activeClass     = selectorStr.substr( selectorStr.lastIndexOf(".") + 1 );
    var targetElemStr   = ".taskbar-icon." + activeClass;
    $(targetElemStr).removeClass("active");
}

disappearWindow(".window.q");