jquery怎么根据html()的内容来选择?

<ul><li>First</li><li>Firstt</li></ul>如上,如何选中html()值为First的jquery对象,$([innerHTML='Fir... <ul>
<li>First</li>
<li>Firstt</li>
</ul>

如上,如何选中html()值为First的jquery对象,
$([innerHTML='First'])这种方法不行,说没有innerHTML这个属性.
展开
 我来答
cainiaokan
推荐于2017-11-29 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:607万
展开全部
$(":contains('First')");//这种是jquery内置的包含选择器,但是因为是包含,因此选择的内容只要包含“First”就会选中。

另外一种通用的。用过滤函数。

$('*').filter(function(index, el){
    var childNodes = el.childNodes;
    return childNodes.length === 1 && childNodes[0].nodeType === 3 && childNodes[0].nodeValue === 'First';
});

但上面的这种方式只适合你这种情况,如果你的li元素像下面这样:


<ul>
<li>First<a href="">这是链接哦</a>
</ul>

也是不行的。就是说,必须元素下只有文字,不再有其他元素。

追问
你们没懂我的意思,我的意思是问jquery有没有直接选择的方法,而不是遍历.
如果遍历的话,下边的这段代码你看看是否可以.
$("li").filter(function () {
return $(this).html().trim() === 'First'
});
追答
jquery选择器在支持querySelector的情况下。用的是css选择器。如果不支持css选择器,jquery内部的选择器用的是sizzle.js。所以说,无论如何,要查找某个文档元素,必然是需要遍历的,要么是浏览器的css选择器帮你遍历,要么是jquery的sizzle帮你遍历,要么就是你自己遍历。

现在你想要根据html的内容筛选元素,首先我要说,这种方式的效率是极为低下的,css选择器里没有这种选项。jquery也仅仅提供了$(":contains('First')")这种选择器。跟你的要求最为接近。

至于你想要jquery直接帮你完成你的要求,这是绝对不可能的。没有这样的函数帮你实现。因为这样的函数效率太低了。

用filter的方式,你写的方式当然是可以的,但也仅此而已,不能适应其他的情况。
昂子帆6I
2014-11-04 · TA获得超过6065个赞
知道大有可为答主
回答量:7904
采纳率:55%
帮助的人:1261万
展开全部

first 是第一个li里面的 你可以获取第一个li试试

$('ul li:first')

追问
这我知道啊,我是说当有很多个li的时候,怎么确定哪个是我需要的?
追答

可以啊;

用另外一种方法

这是我写的一个例子,Jquery库文件自己引入下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.4.3.min.js"></script>
<script type="text/javascript">
$(function(){
var xx=$('.box p').text();
if(xx=="联系我们"){
$('.box p').text('加入我们');
}
})
</script>
</head>

<body>
<div class="box">
<p>联系我们</p>
</div>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的豆豆鱼
2014-11-04 · TA获得超过256个赞
知道小有建树答主
回答量:483
采纳率:76%
帮助的人:195万
展开全部
<script>
$("li").click(function(){
var num = $("li").index(this);
if(num == 0){
alert($(this).html())
}
});
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式