【问题标题】:Why can't I escape the decimal in my variable?为什么我不能转义变量中的小数点?
【发布时间】:2017-09-01 17:45:13
【问题描述】:

我有以下代码:

<script>
var Var1 = "";
$(document).ready(function() {
window.Var1  = "Easy";
});
</script>

<script>
$(document).ready(function() {
if $("div."+window.Var1).length > 0){ 
alert("success"); //DOESN'T WORK
}
});
</script>

这不会提示“成功”

如果我将window.Var1 替换为Easy(如下所示),则警报有效;因此,条件已满足,但 代码未将 $("div."+window.Var1) 解释为 $("div.Easy")

<script>
var Var1 = "";
$(document).ready(function() {
window.Var1  = "Easy";
});
</script>

<script>
$(document).ready(function() {
if $("div.Easy").length > 0){ 
alert("success"); // WORKS
}
});
</script>

【问题讨论】:

  • 这里的\\.Var1 是什么?您应该在这里遇到语法错误,并且这些错误会显示在您的 JavaScript 控制台中。
  • 这是window.Var1,我试图逃避小数点。我认为代码可能将其视为由小数分隔的两个类。然而,即使没有 `\`,代码也不会运行。
  • . 不是小数。它用于访问window 的元素。所以使用“\\”你的代码甚至不是有效的JS
  • 将 if $("div."+window.Var1).length > 0){ 更改为 if ($("div."+window.Var1).length > 0){。你错过了(
  • @ivo 控制台日志没有问题,因为问题与此无关;显然,刻薄比真正试图帮助某人更容易......

标签: jquery escaping


【解决方案1】:

您的问题在这一行:

if $("div."+window.Var1).length > 0){ 

改成:

if ($("div."+window.Var1).length > 0){ 
   ^

你忘记了左括号:

var Var1 = "";
$(document).ready(function() {
  window.Var1  = "Easy";
});

$(document).ready(function() {
  if ($("div."+window.Var1).length > 0){ 
    console.log("success"); //DOESN'T WORK
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>



<div class="Easy">.....</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多