javascript - 在 jQuery 选择器中传递 2 个变量时没有结果,但是当键入相同的字符串输出时它会

标签 javascript jquery jquery-selectors

例如:

var a = "1234";

var b = "line1\\\\.5";

现在这行代码:

"#" + a + b;

输出这个字符串

"#1234line1\\.5"

当我像这样在选择器中输入它时:

$("#1234line1\\.5")

它显示了正确的元素

but $("#" + a + b)

没有

提前感谢您的任何建议

最佳答案

我很惊讶它在控制台中工作,id 选择器无效。 CSS id selectors cannot start with a digit .不过你可以逃避它:

var a = "\\31 234"; // \\31 = 1, then you need the space to terminate the escape

var b = "line1\\.5";        // Removed a pair of \\ from this, I assume you
                            // don't have a backslash in the id

$("#" + a + b).html("Found it");

这有效,例如:Live Example

<div id="1234line1.5"></div>
<script>
  (function() {
    "use strict";

    var a = "\\31 234";

    var b = "line1\\.5";

    $("#" + a + b).html("Found it");
  })();
</script>

如果你在id中确实有一个反斜杠,那么反斜杠的转义是\5c,你在字符串文字中写成\\5c ,所以:Live Example

<div id="1234line1\.5"></div>
<script>
  (function() {
    "use strict";

    var a = "\\31 234";

    var b = "line1\\5c \\.5";

    $("#" + a + b).html("Found it");
  })();
</script>

关于javascript - 在 jQuery 选择器中传递 2 个变量时没有结果,但是当键入相同的字符串输出时它会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25846406/

相关文章:

javascript - 解构赋值以构造一个新对象——这可能吗?

javascript - AngularJS - UI Bootstrap 日期选择器

javascript - 如何防止函数双重动画

javascript - 为什么我的毫秒在 js 秒表中看起来不对

javascript - Ajax成功: function (data) not premmision 403 (Forbidden)

javascript - 仅从具有多个属性的 HTML 选择中获取新添加和删除的选项?

jquery - 如何使用 jquery 选择器搜索列表

javascript - :valid and :invalid selectors in jQuery

javascript - 如何在html和javascript中声明全局变量

jQuery/CSS : line-height of "normal" == ? 像素