当我运行此功能时:
onUnCheck: function(el) {
var thenames = "icon-"+el.find("label:first").text().replace(/ /g,'').toLowerCase();
alert(thenames);
$("'."+thenames+"'").hide("fast");
}
我生成一个字符串。我可以在alert()中看到它确实是正确的字符串。示例:
icon-jira
但是当我作为jQuery选择器传递字符串时,它不起作用。
我知道函数的逻辑是合理的,因为粘贴我的alert()的结果使它工作。
为什么jQuery不接受我的字符串?
答案 0 :(得分:5)
$('.'+thenames).hide("fast");
这将寻找“.icon-jira”。您正在寻找“'.icon-jira'”,它将引号添加到选择器。
答案 1 :(得分:4)
看起来你有一套额外的单引号(''
)。试试这个:
onUnCheck: function(el) {
var thenames = "icon-"+el.find("label:first").text().replace(/\s/g,'').toLowerCase();
alert(thenames);
$("."+thenames).hide("fast");
}
另外,考虑使用/\s/g
代替/ /g
- /\s/g
更不容易出错且更具可读性。