测试特殊 & html 代码

Test for special & html code

我使用以下方法设置跨度:

<span id=\"xxx\">&#9656;</span>

谁能告诉我为什么以下测试不起作用:

if ($("#xxx").text() == "&#9656;")
         alert("hello");

因为&#9656;其实就是这个字

当你$('#xxx').text()你会得到

尝试这样做:

if ($("#xxx").text() == "▸")
     alert("hello");

通过查看此问题中链接的其他问题。看起来像做你正在寻找的方法是:

if ($("#xxx").text().charCodeAt() == '9656')
     alert("hello");

如果您不想使用直接符号条件 $("#xxx").text() == "▸" 的其他答案,并且想检查跨度文本 &#9656;,您可以使用 .charCodeAt(0)获取特殊符号编号,然后在您的条件中添加 &#; :

var special_symbol_number = $("#xxx").text().charCodeAt(0);

if ( "&#"+special_symbol_number+";" === "&#9656;")
  alert("hello");

或者您可以使用特殊符号编号进行检查:

if ($("#xxx").text().charCodeAt(0) === '9656')
    alert("hello");

希望这对您有所帮助。

if ($("#xxx").text().charCodeAt(0) === '9656')
  alert("hello");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="xxx">9656</span>

“▸‌;”是 应用于 HTML 而不是 Javascript。在 HTML 中,它被称为 Entity,它被替换为文字字符 (▸)。但它不会在 JavaScript.

中执行此操作

要检查 JavaScript 中的字符,只需按字面意思输入字符:

if ($("#xxx").text() == "▸")
    alert("hello");

您可以通过在浏览器中复制角色来获取角色(select ▸,然后点击 cmd-c 或 ctrl-c),然后将其粘贴到 JavaScript 文件中。

HTML 使用实体的原因是因为它有一些字符(如 < 和 >)可以被解析为代码的实际部分(尝试在 HTML 中编写 ;它将不可见,因为 HTML 认为您需要一个元素);这些实体允许按字面意思解析这些值,即使它们看起来像代码。这是一个工作片段,其中 JavaScript 成功检查了元素的内容:

if ($("#xxx").text() == "▸")
    alert("hello");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="xxx">&#9656;</span>

或者您可以这样做:

<span id=\"xxx\">&amp;#9656;</span>

if ($("#xxx").text() == "&#9656;")
     alert("hello");