微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();

原文地址:https://www.jb51.cc/jquery/153195.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐