当select元素有某个选项时,我试图切换一个隐藏的输入元素。当我收到变量q的警报时,q没有输入但是变量put我是否因为.replace()删除了整个字符串而感到很困惑。
function hiddeninput(choice, put) {
var q = put.replace(/./g, "").replace(/#/g, "");
alert(put + "," + q);//alerts .other,
if (choice === q) {
$(put).show();
} else {
$(put).hide();
}
}
任何帮助将不胜感激。过去几天,JSfiddle一直很蠢,我以前的一些工作小提琴已经停止工作了,也许这就是原因。
答案 0 :(得分:0)
你是否意识到.
是否匹配任何角色?
您需要使用\
转义它,以便它只匹配.
而不是任何字符。
var q = put.replace(/\./g, "").replace(/#/g, "");
而不是做两次替换,你可以做一次
var q = put.replace(/[.#]/g,"");
答案 1 :(得分:0)
在正则表达式中。“将匹配任何角色。你有:put.replace(/./g, "");
。这意味着你要用任何东西替换任何角色的每个匹配,这将不会产生任何结果。
如果要匹配点,则需要使用反斜杠转义特殊字符:put.replace(/\./g, "");
。
我不确定这是否能完全解决你的问题,但对我来说这似乎是无意识的事情。