jQuery contains过滤器实现精确匹配使用方法

(编辑:jimmy 日期: 2024/10/10 浏览:2)

复制代码 代码如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<!--<script src="/UploadFiles/2021-04-02/jquery.min.js"><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><script type="text/javascript">
$(function () {
//根据select中的option的文本来执行选中
//$("#selectbox option[text='第二项']");
//$("#selectbox option").filter("[text='第二项']");
//上面两种写法都是错误的
//正确写法
$("#btn4").click(function () {
var $option =$("#selectbox option:contains('第二项')").map(function(){
if ($(this).text() == "第二项") {
return this;
}
});
alert($option.length > 0 ? "有对象" : "无对象");
$option.attr("selected", true);
});
});
</script>
</head>
<body>
<form id="form1">
<div>
<select id="selectbox">
<option value="1">第一项</option>
<option value="2">第二项</option>
<option value="21">第二项1</option>
</select>
<input type="button" id="btn4" value="contains测试" />
</div>
</form>
</body>
</html>

$(".selector:contains('xx')")
  contains()只作匹配查找,不够精确,包含xx的selector和包含xxabc的selector都会查到。

解决办法:
?$(".selector:contains('xx')[innerHTML='xx']")
  这样将查找内容只有xx的selector。

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。