jq筛选,查找,串联

筛选

  1. eq(index|-index):获取第N个元素

负值表示从末尾开始匹配

例:获取匹配的第二个元素

<p> This is just a test.</p> 
<p> So is this</p>
 <script> 
 $("p").eq(1) 
 $("p").eq(-2) // <p> This is just a test.</p>
  </script>
  1. first():获取第一个元素
<ul>
 <li>list item 1</li>
  <li>list item 2</li> 
  <li>list item 3</li>
   <li>list item 4</li>
    <li>list item 5</li>
    </ul> 
    <script>
     $('li').first() //<li>list item 1</li>
      </script>
  1. last():获取最后一个元素

例子与first相反
4) hasClass(class):检查当前的元素是否含有某个特定的类,如果有,则返回true。

<div class="protected"></div>
<div></div>
<script>

$("div").click(function(){

if ( $(this).hasClass("protected") )

$(this)

.animate({ left: -10 })

.animate({ left: 10 })

.animate({ left: -10 })

.animate({ left: 10 })

.animate({ left: 0 });

});
</script>
  1. filter(expr | obj | ele | fn):筛选出与指定表达式匹配的元素集合。

这个方法用于缩小匹配的范围。用逗号分隔多个表达式,返回匹配到的元素节点

<!-- 保留子元素中不含有ol的元素。 --> 
<p> <ol> <li>Hello</li> </ol> </p> 
<p>How are you?</p> 
<script>
 $("p").filter(function(index) { 
 return $("ol", this).length == 0; //<p>How are you?</p> }); </script> 

6) is(expr | obj | ele | fn):检测匹配元素集合,有一个元素符合返回true

<!-- 由于input元素的父元素是一个表单元素,所以返回true。--> 
<form> <input type="checkbox" /> </form> 
<script> 
$("input[type='checkbox']").parent().is("form") //true 
</script>
  1. map(callback):将一组元素转换成其他数组(不论是否是元素数组)

你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用’$.map()'来方便的建立。

<!-- 把form中的每个input元素的值建立一个列表。-->
 <p> <b>Values: </b> </p> 
 <form>
  <input type="text" name="name" value="John"/>
   <input type="text" name="password" value="password"/> 
   <input type="text" name="url" value="http://ejohn.org/"/> 
   </form> 
   <script>
    $("p").append( $("input").map(function(){ 
    return $(this).val(); }).get().join(", ") ); //<p>John, password, http://ejohn.org/</p>
     </script> 
  1. has(expr|ele):保留包含特定后代的元素,去掉那些不含有指定后代的元素
<ul>
 <li>list item 1</li> 
 <li>list item 2 <ul>
  <li>list item 2-a</li> 
  <li>list item 2-b</li> 
  </ul> </li>
   <li>list item 3</li>
    <li>list item 4</li> 
    </ul>
     <script> 
     $('li').has('ul').css('background-color', 'red');
      </script> 

9 ) not(expr|ele|fn):删除与指定表达式匹配的元素;

<p>Hello</p>
<p id="selected">Hello Again</p>
<script>
 $("p").not( $("#selected")[0] )       //<p>Hello</p> </script>
  1. slice(start, [end]):选取一个匹配的子集
<p>Hello</p> 
<p>cruel</p> 
<p>World</p> 
<script> 
$("p").slice(0, 1).wrapInner("<b></b>"); //<p><b>Hello</b></p> </script> 
<!-- 选择前两个p元素 --> 
<script> 
$("p").slice(0, 2).wrapInner("<b></b>"); // <p><b>Hello</b></p>,<p><b>cruel</b></p> 
</script>

节点的查找

查找节点 	 
查找儿子元素 	
$('选择器').children(); 	
$('选择器').children('选择器'); //查找儿子元素中的指定元素 
查找后代元素 	
$('选择器').find('选择器') 
查找直接父节点 
	$('选择器').parent()
	查找所有祖先节点,直到html节点为止 
	 	$('选择器').parents() 
	 	查找所有兄弟节点(本身除外) 	
	 	$('选择器').siblings(); 	常见用法,移除兄弟节点样式,进行排他操作 
	 	查找后一个兄弟元素 	
	 	$('选择器').next() 	 
	 	查找前一个兄弟元素 	
	 	$('选择器').prev() 	 
	 	查找后面所有兄弟元素 	
	 	$('选择器').nextAll() 	 
	 	查找前面所有兄弟元素 	
	 	$('选择器').prevAll()

串联

add(e|e|h|o[,c])
// 1.9*连接2个对象集合成一个对象集合(传参选择器,JQ对象,DOM对象,html表达式,)
addBack(elel0)
// 1.9+将先前所选的加入当前元素中
contents()
// 查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容
end()
// 回到最近的一个"破坏性"操作之前。即,将匹配的元素列表变为前一次的状态。
andSelf()
// 1.8-在jQuery1.8和更高版本中应使用.addBack()代替。

<html>

<div>

<p></p>

<p></p>

<div class="a">

<p></p>

<span></span>

</div>

</div>

</html>

<script>

$("span").add("p").length; //返回 4

$("span").add($("p")).length; //返回 4 

$("span").add("p")[3].tagName; //返回 SPAN (按照html代码中顺序)

$("p").add("span")[3].tagName; //返回 SPAN 

$("span").add("<em>123</em>")[1].tagName; //返回 EM 创建一个对象加入 $("span")集合中

$("div").find("span").addBack().length; //返回 3 (1个span再加上2个div)

$("div").find("span").addBack()[2].tagName; //返回 SPAN 

$("div").find("span").addBack(".a").length; //返回 2 (1个span再加上class="a"的1个div)

$(".a").contents().not("p").wrap("<b/>"); //将 .a 子元素中非p元素节点包裹一层 b 标签

$("iframe").contents().find("body").append("123"); //在iframe中插入"aaa"

$("div").find("span").end(); //即回到 $("div")

$("div").length; //返回 2

$("div").find("span").length; //返回 1

$("div").find("span").end().length; //返回 2

</script> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值