<!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>
</head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#c>li:has(a)").attr("href","about:blank");
});
</script>
<body>
<ul id="c">
<li><a href="http://www.baidu.com">b</a></li>
</ul>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#c>li:has(a)").attr("href","about:blank");
});
</script>
<body>
<ul id="c">
<li><a href="http://www.baidu.com">b</a></li>
</ul>
</body>
</html>
//1)根据ID得到jQuery对象C,然后得到子元素对象li,得到后代元素对象a
//$("#c>li a").attr("href","about:blank").css("background","yellow");
//2)根据元素得到jQuery对象a
//$("a").attr("href","about:blank").css("background","yellow");
//3)根据元素得到对象li,选择li的第一个子对象
//$("li :nth-child(1)").attr("href","about:blank").css("background","yellow");
//5)根据元素得到对象li,得到li的第一个子对象
//$("li :first-child").attr("href","about:blank").css("background","yellow");
//6)根据元素得到对象li,得到属性href为http://www.baidu.com的对象
//$("li [href='http://www.baidu.com']").attr("href","about:blank").css("background","yellow");
//7)根据元素得到对象li,得到属性href以http://www.baidu开始的对象
//$("li [href^='http://www.baidu']").attr("href","about:blank").css("background","yellow");
//8)根据元素得到对象li,得到属性href以baidu.com结束的对象
//$("li [href$='baidu.com']").attr("href","about:blank").css("background","yellow");
//9)根据元素得到对象li,得到属性href中含有baidu的对象
//$("li [href*='baidu']").attr("href","about:blank").css("background","yellow");
//10)得到第一个(从0开始)a对象
//$("a:eq(0)").attr("href","about:blank").css("background","yellow");
//11)得到第一个a对象
//$("a:first").attr("href","about:blank").css("background","yellow");
//12)得到含有文本为b的a对象
//$("a:contains('b')").attr("href","about:blank").css("background","yellow");
//13)得到含有子元素,或者是文本元素的a对象
//$("a:parent").attr("href","about:blank").css("background","yellow");
//14)得到可见a对象
//$("a:visible").attr("href","about:blank").css("background","yellow"); //jQuery的选择器非常非常的牛叉..... 各种选择,各种扩展!
我能想到的有上面有些... 一起学习吧.
$("#c>li:has(a)").attr("href","about:blank");
这一句错在哪吗?好像没错啊,说说错的原因
$("#c>li:has(a)").attr("href","about:blank");
这一句错在哪吗?好像没错啊,说说错的原因
#c 使用id选择器,你获取的是id为c的对象,该对象是你HTML里面的ul元素
>li 找到的是里面的子代元素数组<li>,是ul下面所有的子代li
:has(a) "过滤"找到的还是li元素.是拥有<a>元素的li对象综上.你的这句$("#c>li:has(a)")找到的是ul对象下面的拥有a元素的 li 对象.你可以执行这句看一下结果:
$("#c>li:has(a)").html("<div style='background:red;width:50px;height:50px'></div>");