jQuery-----选择元素

(一)选择更多元素

add方法用于在jquery中选择更多的元素。

add方法支持的参数有add(selector),add(selector,context),add(HTMLElement),add(HTMLElement[]),add(jQuery)

$(document).ready(function () {

  var labelElems = document.getElementsByTagName("label");
  var jq = $("img[src*=daffodil]");

  $("img:even").add("img[src*=primula]").add(jq).add(labelElems).css("border", "thick double red");

  //add参数依次为selector、jQuery对象和HTMLElement

});

(二)限制选择范围

1)从结果集中获取某个元素

$(document).ready(function() {

  var jq = $("label");
  jq.first().css("border", "thick double red");//第一个label
  jq.last().css("border", "thick double green");//最后一个label
  jq.eq(2).css("border", "thick double black");//第二个label
  jq.eq(-2).css("border", "thick double black");//倒数第二个label

});

2)从结果集中获取子集

$(document).ready(function() {

  var jq = $("label");

  jq.slice(0, 2).css("border", "thick double black");//索引为0和1的label
  jq.slice(4).css("border", "thick solid red");//索引为4以后的label

});

3)过滤元素

filter方法可以将所有不满足某个指定条件的元素剔除,支持的参数有filter(selector),filter(HTMLElement),filter(jQuery),filter(function(index))

指定过滤器

$(document).ready(function() {
  $("img").filter("[src*=s]").css("border", "thick double red");//选择器
  var jq = $("[for*=p]" );
  $("label").filter(jq).css("color", "blue");
  var elem = document.getElementsByTagName("label")[1];
  $("label").filter(elem).css("font-size", "1.5em");

  $("img").filter(function(index) {
    return this.getAttribute("src") == "peony.png" || index == 4;//如果函数返回true,则保留这个元素;否则删除这个元素

    //注意:src返回绝对URL,getAttribute(0返回相对URL
  }).css("border", "thick solid red")
});

not方法:其工作方式很大程度上和filter相反

$(document).ready(function() {

  $("img").not("[src*=s]").css("border", "thick double red");
  var jq = $("[for*=p]");
  $("label").not(jq).css("color", "blue");

  var elem = document.getElementsByTagName("label")[1];
  $("label").not(elem).css("font-size", "1.5em");
  $("img").not(function(index) {
    return this.getAttribute("src") == "peony.png" || index == 4;
  }).css("border", "thick solid red")
});

(三)以映射方式处理结果集-----每次只能返回一个元素

$(document).ready(function() {

  $("div.dcell").map(function(index, elem) {
    return elem.getElementsByTagName("img")[0];//返回每一个div.dcell中的img
  }).css("border", "thick solid red");

  $("div.dcell").map(function(index, elem) {
    return $(elem).children()[1];//返回每一个div.dcell中的第二个子元素
  }).css("border", "thick solid blue");

});

(四)检测结果集

is()方法用于检测jQuery中的某个对象是否满足测试条件,接收参数类型同filter,返回值为boolean

$(document).ready(function() {

  var isResult = $("img").is(function(index) {
    return this.getAttribute("src") == "rose.png";
  });
  console.log("Result: " + isResult);

});

(五)修改、回退结果集

1)end()---回退到上一个结果集

$(document).ready(function() {
  //给第一个label设置border,给所有的lable设置字体
  $("label").first().css("border", "thick solid blue")
  .end().css("font-size", "1.5em");

});

2)addback()---返回当前结果集和上一个结果集的合集

$(document).ready(function() {
  $("div.dcell").children("img").addBack().css("border", "thick solid blue");//给所有的dcell的div及其子img对象设置border
});

(六)访问DOM

1)访问后代元素

childern方法(children(), children(selector)),返回子元素

find方法(参数类型与filter一样,但不可以接受函数),返回后代元素

二者返回的元素不会有重复的结果

2)使用find方法得到一个交集

$(document).ready(function() {
  var jq = $("label").filter("[for*=p]").not("[for=peony]");
  $("div.drow").find(jq).css("border", "thick solid blue");
});

2)访问祖先元素

得到父元素:

$(document).ready(function() {
  $("div.dcell").parent().each(function(index, elem) {//得到每一个div.dcell的父元素
    console.log("Element: " + elem.tagName + " " + elem.id);
  });

  $("div.dcell").parent("#row1").each(function(index, elem) {//得到每一个div.dcell的ID为row1的父元素
    console.log("Filtered Element: " + elem.tagName + " " + elem.id);
  });
});

选取祖先元素:

parents方法:可以厚的所有的祖先元素(不仅仅是父元素),可使用可选的选择器过滤

$(document).ready(function() {
  $("img[src*=peony], img[src*=rose]").parents().each(function(index, elem) {//获得两个img元素的所有祖先元素
    console.log("Element: " + elem.tagName + " " + elem.className + " " + elem.id);
  });
});

parentsUtil(selector):沿着dom树向上查找,直到匹配参数选择器为止,注意选择结果不包含参数选择器,还可以提供第二个选择器可进一步过滤选择结果

选择第一个匹配的祖先元素:

closest(selector):用于匹配参数选择器的第一个祖先元素

offsetParent():用于匹配祖先元素中最近的定位元素

3)访问兄弟元素

选择全部的兄弟元素:

siblings(selector):用于匹配所有参数选择器的兄弟元素

选择后面或前面的兄弟元素:

prev(selector)   pervAll(selector)

next(selector)   nextAll(selector)

时间: 2024-08-05 01:57:55

jQuery-----选择元素的相关文章

JQuery——选择元素

一.$()工厂函数 在Jquery中无论哪种类型的选择符,都要从一个$()开始,在这个函数接受CSS选择符作为参数,返回包含页面对应元素的Jquery对象. 基本的选择符: 选择符 CSS中 Jquery中 说明 标签名   P{} $('P') 取得文档中所有的段落 ID #some-id{} $('#some-id')  取得文档中ID为some-id的一个元素   类      .some-class{}   $('.some-class')  取得文档中类为some-class的所有元素

jQuery选择元素的方法大全

jQuery选择器其实是一个有些地方比较费解的,如果没有经过多次实验的话,很难得出它的每个操作符到底是干什么的,很容易出错,经过 我的多次测试,终于对一些比较难理解或容易出错的选择操作进行总结,既方便自己将来查询又方便初学者学习.如果哪里有不对的还望大家帮我指出来,这里是一 个相互学习的地方. 1. 先说说通过位置选择的几个操作: :first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在u

jQuery选择器对应的DOM API ——选择元素

英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don’t Need jQuery!提倡我们使用原生的JavaScript,所以收集整理了jQuery语法对应的DOM API : 原作者参数的原因可以看这里:http://blog.garstasio.com/you-dont-need-jquery/why-not/ ,个人同意他的观点,简单的页面或应

jQuery 选择具有特殊属性的元素

现在有这样一种需求,需要选出所有有背景图片的元素. 这个问题有点棘手.我们无法使用选择表达式来完成这个问题了. 使用jQuery的DOM过滤方法filter(),可以根据函数中表达的任何条件选择元素. jQuery中的过滤器方法允许传递一个字符串(也就是选择器表达式)作为参数. 或者传递的是一个函数.它的返回值将定义某个元素是否被选中. 传递的函数将对当前选择集中的每个元素运行. 当函数返回假时,对应的函数就从选择集中被删除掉.每当返回值为真的时候,对应的元素 不受影响. jQuery('*')

Jquery 系列(2) 选择元素

Jquery基础学习 jQuery利用css选择符的能力,能够在DOM中快捷而轻松地获取元素. 主要内容如下: 介绍DOM树 如何通过CSS选择符在页中查找元素 扩展jQuery标准的CSS选择符 选择页面元素更灵活的DOM遍历方法 理解DOM树 DOM(Document Object Model)文档对象模型,可以充当JavaScript和网页之间的接口.jQuery最强大的功能就是能轻松的处理和简化在DOM中选择元素.DOM中各元素的关系,同数据结构中的二叉树的称呼非常相近.元素之间的关系包

jQuery基本选择 元素

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>ddd</title> 5 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 6 <script l

初识jQuery,八字真言“选择元素,对其操作”

jQuery在我印象中,就是很多类似$(),然后昨天开始接触了,觉得很和谐,获取元素比JavaScript简单很多,有意思. 一.开始学习jQuery,下载jQuery库的文件 http://jquery.com/download/ jQuery库有两个版本: 我只是使用这个jQuery库,所以我就只下载了生产版本,足以. 二.开始我的第一个Demo 1.html文件 <!DOCTYPE html> <html> <head> <meta charset=&quo

jquery基础教程 - 第二章 选择元素

内容提要 1.网页中元素的介绍 2.如何通过CSS选择符在页面中查找元素 3.扩展jquery标准的CSS选择符 4.让选择页面元素更灵活的DOM遍历方法 本章重点:让我们能够在DOM中快捷而又轻松地获取元素或元素的集合 1.网页中元素介绍 1.1理解DOM -- JQUERY最大的特性之一就是它能够简化在DOM中选择元素的任务, DOM 充当网页和javascript之间的接口,它以对象网络而非纯文本的形式来表现html的代码 <html>是网页中的祖先元素: 搞清楚子元素,父元素,同辈元素

JQuery基础教程:选择元素(上)

jQuery最强大的特性之一就是它能够简化在DOM中选择元素的任务,DOM中的对象网络与家谱有几分类似,当我们提到网络中元素之间的关系时,会使用类似描述家庭关系的术语,比如父元素.子元素,等等.通过一个简单的例子,可以帮助我们理解文档各元素构成的树形结构: <html> <head> <title>the title</title> </head> <body> <div> <p>This is a parag

浏览器console中加入jquery,测试选择元素

一.chrome浏览器F12打开调试界面,在console中输入(firefox同样可以): var jquery = document.createElement('script'); jquery.src = "http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js";//若调试页面是https的这里也修改为https. document.getElementsByTagName('head')[0].appendChild(jq