繁体   English   中英

jQuery-使用字符串选择元素

[英]Jquery - Select Element Using String

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

窗口的唯一名称由我指定,并且一次只能有一个唯一的窗口,这意味着不应有两个具有相同唯一类名称的元素,例如.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”并且更友好? 还是有其他建议可以做些其他事情以达到相同的结果?

我不介意更改名称。

如果我没有记错的话,那么我认为以下代码应该有效。

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

disappearWindow(".window.q");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM