Javascript Jquery-使用字符串选择元素
这是我的代码,如果窗口关闭,它将触发给定类名Javascript Jquery-使用字符串选择元素,javascript,jquery,Javascript,Jquery,这是我的代码,如果窗口关闭,它将触发给定类名.window和唯一窗口名的函数,这是为每个不同的函数windows准备的。该函数将找到与窗口具有相同唯一名称的.taskbar图标,并删除类.active,以告知用户窗口实际上已关闭 窗口的唯一名称由我提供,一次只能有一个唯一的窗口,这意味着不应该有两个元素具有相同的唯一类名,例如.window.q function disappearWindow(target) { if(target.hasClass("q")) { $(
.window
和唯一窗口名的函数,这是为每个不同的函数windows准备的。该函数将找到与窗口具有相同唯一名称的.taskbar图标
,并删除类.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"));
正如您在上面所看到的,每次我插入一个新窗口时,我都会给它一个类名,例如q
或ts
等,而不是使用上面的代码,我将不得不添加另一个语句,因为它不具有生产性并且浪费资源
窗口应仅包含类窗口\u实际\u唯一\u名称ui可拖动ui可调整大小
所以我想要这样的东西:
function disappearWindow(target) {
$(".taskbar-icon" + NAME_FROM_FUNCTION_CALLING).removeClass("active");
}
有没有办法把名字提取出来,这样上面的代码就不那么“黑”了,更友好了?或者有什么建议可以采取其他措施来达到同样的效果
我不介意更改名称。如果我没有弄错并且完全理解您的观点,我认为以下代码应该可以工作
function disappearWindow(selectorStr) {
var activeClass = selectorStr.substr( selectorStr.lastIndexOf(".") + 1 );
var targetElemStr = ".taskbar-icon." + activeClass;
$(targetElemStr).removeClass("active");
}
disappearWindow(".window.q");
有多少个名字(潜在的),你知道它们会是什么吗,或者在某种程度上是动态的?我想我很困惑为什么你不能只写$(“.taskbar图标”)。removeClass(“active”)?对不起,有很多任务栏图标,现在可以编辑谢谢,这甚至让我不得不键入更少的jquery美元符号:DJust好奇,你能打开$(“.something”)吗或者提取该元素的所有类并形成一个字符串?多亏了你,Daniel,我实际上无法将选择器的结果转换为字符串。但是,您可以迭代结果数组以获得所需的字符串。