gpt4 book ai didi

javascript - jQuery 转义特殊字符失败

转载 作者:行者123 更新时间:2023-11-30 16:41:37 24 4
gpt4 key购买 nike

我正在尝试制作一个 jQuery 选择器,以通过任意 id 选择一个 html 元素。 ID 可能包含需要转义的特殊字符。一个例子是 test_E///_AAAAA

我基本上正在做这个工作中发生的事情 fiddle (它使用 v 1.11.0,我使用的是 v 1.11.3,并且还使用 2.1.3 进行了测试)

但是,在我的放大环境中,它不起作用。我收到 语法错误,无法识别的表达式:#test_E\\/\\/\\/_AAAAA

关于 jQuery 一定有一些晦涩的事实,这就是工作和不工作之间的区别。本人是新手,没法识别。

我注意到我并不孤单。 this thread的评论员有同样的问题。

代码文件有数千行,我的雇主可能禁止我发布超过几行的代码。我只是在寻找一个提示、一个线索、一个黑暗中的机会,关于什么会导致一个完全合理的选择字符串被拒绝。

最佳答案

你只需要足够的反斜杠 :)

编号:元素的 ID 是 test_E\\/\\/\\/_AAAAA。请注意,反斜杠在 HTML 中没有任何特殊含义,因此 ID 中确实有六个反斜杠。

jQuery 选择器 反斜杠、正斜杠和其他几个字符在 jQuery 选择器中具有特殊含义,因此我们需要使用反斜杠对它们进行转义。因此,选择器需要是 #test_E\\\\\/\\\\\/\\\\\/_AAAAA。这告诉 jQuery 寻找一个元素,其 ID 包含 test_E,然后是两个反斜杠,然后是一个正斜杠,等等。

JavaScript 字符串文字:要使用 JavaScript 字符串文字表示该选择器,每个反斜杠都需要转义。所以字符串文字将是 "#test_E\\\\\\\\\/\\\\\\\\\\/\\\\\\\\\\/_AAAAA".

var selectionString = "#test_E\\\\\\\\\\/\\\\\\\\\\/\\\\\\\\\\/_AAAAA";
snippet.log("actual id: " + $("p")[0].id);
snippet.log("selection string given to jQuery: " + selectionString);
snippet.log("text: " + $(selectionString).text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

<p id="test_E\\/\\/\\/_AAAAA">This is a test :)</p>

如您所见,这非常丑陋、难以理解且难以正确处理。我强烈建议避免使用此类 ID。另一种选择是使用旧的 document.getElementById(),它只需要字符串文字转义:

$(document.getElementById('test_E\\\\/\\\\/\\\\/_AAAAA')).text()

关于javascript - jQuery 转义特殊字符失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31887852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com