为什么jQuery不接受这个字符串?

时间:2010-09-21 17:23:18

标签: jquery

当我运行此功能时:

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不接受我的字符串?

2 个答案:

答案 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更不容易出错且更具可读性。