javascript – jQuery字符串变量作为id-selector返回空对象

有一些我没有看到这里..我有一个字符串变量与元素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();

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...