有一些我没有看到这里..我有一个字符串变量与元素id:
var sf_new_id = "#sf_widget_choice-32:14.86:1:1"
我从另一个元素得到这个字符串(‘sf_selectedmethod’是另一个元素):
var anotherid = sf_selectedmethod.attr('id');
然后我删除最后一个字符,并添加一些信息到该id,即最后一个号码和’#’:
var sf_new_id = anotherid.substr(0,anotherid.length-1); // Now without the last char. sf_new_id = '#'+sf_new_id+'1';
它变成上面描述的字符串.
而我正在尝试使用jQuery访问元素:
$(sf_new_id).addClass("...");
具有该id的元素存在,但没有任何反应.我试图隐藏元素:
$(sf_new_id).hide();
但是什么都没有发生.
我把整个元素放到console.debug中,它显示一个空的对象:
console.debug($(sf_new_id));
输出:控制台中的Object []
我在这里缺少什么?
编辑:
我尝试了逃生的东西,它似乎工作,但现在的问题是,当信息在变量中时,我如何逃避冒号?
解决方法
您必须转义字符串中的特殊字符,以形成有效的选择器.
var sf_new_id = "#sf_widget_choice-32:14.86:1:1"; sf_new_id = sf_new_id.replace(/:/g,"\\:") .replace(/\./g,"\\.") $(sf_new_id).hide();