jquery - 如何在jQuery中转义双引号
问题描述
我没有成功转义 jQuery 中的双引号 (")。
这是我的代码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>
.red { border-top: 10px solid red; }
.yellow { border-top: 10px solid yellow; }
.left { border-left: 3px solid green; }
</style>
</head>
<body>
<ul id="choose">
<li>Goofy</li>
<li><a href="blabla.aspx">Mickey</a></li>
<li><a href="other.ext">Mickey</a></li>
<li>Pluto</li>
</ul>
<script>
$(document).ready(function(){
$("p:contains(is)").css("background-color", "yellow");
$("li:contains('Mickey')").addClass('left');
$("li:contains('aspx">Mickey')").addClass('yellow');
$("li:contains('Pluto')").addClass('left');
});
</script>
</body>
</html>
解决方案
尝试用contains
. HTML 往往会发生变化,甚至一个空格也会破坏代码。
相反,:has
为孩子使用并传递一个适当的选择器:
$(document).ready(function(){
$("p:contains(is)").css("background-color", "yellow");
$("li:contains('Mickey')").addClass('left');
$("li:has(a[href$=aspx]:contains('Mickey'))").addClass("yellow");
$("li:contains('Pluto')").addClass('left');
});
.red { border-top: 10px solid red; }
.yellow { border-top: 10px solid yellow; }
.left { border-left: 3px solid green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<ul id="choose">
<li>Goofy</li>
<li><a href="blabla.aspx">Mickey</a></li>
<li><a href="other.ext">Mickey</a></li>
<li>Pluto</li>
</ul>
或者,您也可以仅使用链接本身的选择器并获取li
with .parent()
。
推荐阅读
- install4j - Install4J:以编程方式自定义水印文本
- nginx - 如何配置我的 nginx 以使我的 Web 应用程序可以通过 ip 和域名访问?
- cron - Cron 表达式每 30 分钟运行一次,但在两个特定时间之间
- windows-subsystem-for-linux - 您可以使用 Windows 安装制作 WSL 界面吗?
- c++ - 如何编写注册事件的控制台应用程序,只要通过 Windows 设置更改无线电状态,就应该调用它
- java - 当我在 android studio 中使用 recyclerView 时没有响应 onClickListner 为什么?
- database - 在作为 Postgresql 副本的表上创建物化视图时出现问题,返回错误
- performance - 为什么只有 1 KiB 或 2 KiB 访问大小的 L2 硬件预取器性能更差?
- web-crawler - Windows 出站爬虫速度限制
- performance - 在 React 和 Redux 应用程序中调度大量操作对性能有何影响?