文章标题

来源:互联网 发布:网络广告创意图片 编辑:程序博客网 时间:2024/05/18 17:58

1、利用jQuery选择器查找,返回的对象是jQuery对象。
2、jQuery对象类似数组,它的每个元素都是一个引用了DOM节点的对象。
3、没有查询结果返回:[],不返回undefined或者null。

jQuery选择器

// idvar div = $('#abc');
// tagvar ps = $('p');
// classvar a = $('.red') // 所有节点包含`class="red"`都将返回var a = $('.red.green') //查找同时包含red和green的节点,注意没有空格!
// 属性var email = $('[name=email]'); // 找出<??? name="email">var passwordInput = $('[type=password]'); // 找出<??? type="password">var a = $('[items="A B"]'); // 找出<??? items="A B">,                            //当属性的值包含空格等特殊字符时,需要用双引号括起来var icons = $('[name^=icon]'); // 找出所有name属性值以icon开头的DOM                               // 例如: name="icon-1", name="icon-2"var names = $('[name$=with]'); // 找出所有name属性值以with结尾的DOM                               // 例如: name="startswith", name="endswith"var icons = $('[class^="icon-"]'); // 找出所有class包含至少一个以`icon-`开头的DOM                                   // 例如: class="icon-clock", class="abc icon-home"
// 组合查找var emailInput = $('input[name=email]'); // 不会找出<div name="email">var tr = $('tr.red'); // 找出<tr class="res ..."></tr>
//// 多项选择器$('p,div'); // 把<p>和<div>都选出来$('p.red,p.green'); //把<p class="red">和<p class="green">都选出来// 要注意的是,选出来的元素是按照它们在HTML中出现的顺序排列的,而且不会有重复元素。例如,<p class="red green">不会被上面的$('p.red,p.green')选择两次.
// 层级选择器(Descendant Selector)$('form.test p input'); // 在form表单选择被<p>包含的<input>
// 子选择器(Child Selector)// 限定了层级关系必须是父子关系$('ul.lang>li.lang-javascript');  // 用“>“
// 过滤器(Filter)$('ul.lang li:first-child'); // 选出第一个元素$('ul.lang li:last-child'); // 选出最后一个元素$('ul.lang li:nth-child(2)'); // 选出第N个元素,N从1开始$('ul.lang li:nth-child(even)'); // 选出序号为偶数的元素$('ul.lang li:nth-child(odd)'); // 选出序号为奇数的元素
// 表单相关   :input:可以选择<input>,<textarea>,<select>和<button>;   :file:可以选择<input type="file">,和input[type=file]一样;   :checkbox:可以选择复选框,和input[type=checkbox]一样;   :radio:可以选择单选框,和input[type=radio]一样;   :focus:可以选择当前输入焦点的元素,例如把光标放到一个<input>上,用$('input:focus')就可以选出;   :checked:选择当前勾上的单选框和复选框,用这个选择器可以立刻获得用户选择的项目,如$('input[type=radio]:checked');   :enabled:可以选择可以正常输入的<input>、<select> 等,也就是没有灰掉的输入;   :disabled:和:enabled正好相反,选择那些不能输入的。$('div:visible'); // 所有可见的div$('div:hidden'); // 所有隐藏的div

jQuery查找和过滤

通常情况下选择器可以直接定位到我们想要的元素,但是,当我们拿到一个jQuery对象后,还可以以这个对象为基准,进行查找和过滤。

<!-- HTML结构 --><ul class="lang">    <li class="js dy">JavaScript</li>    <li class="dy">Python</li>    <li id="swift">Swift</li>    <li class="dy">Scheme</li>    <li name="haskell">Haskell</li></ul>
// find()var ul = $('ul.lang'); // 获得<ul>var dy = ul.find('.dy'); // 获得JavaScript, Python, Schemevar swf = ul.find('#swift'); // 获得Swiftvar hsk = ul.find('[name=haskell]'); // 获得Haskell
// parent()var swf = $('#swift'); // 获得Swiftvar parent = swf.parent(); // 获得Swift的上层节点<ul>var a = swf.parent('.red'); // 获得Swift的上层节点<ul>,同时传入过滤条件。如果ul不符合条件,返回空jQuery对象
// next()var swift = $('#swift');swift.next(); // Schemeswift.next('[name=haskell]'); // 空的jQuery对象,因为Swift的下一个元素Scheme不符合条件[name=haskell]
// prev()var swift = $('#swift');swift.prev(); // Pythonswift.prev('.dy'); // Python,因为Python同时符合过滤器条件.dy
// filter()var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskellvar a = langs.filter('.dy'); // 拿到JavaScript, Python, Schemelangs.filter(function () {    return this.innerHTML.indexOf('S') === 0; // 返回S开头的节点}); // 拿到Swift, Scheme
// map()var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskellvar arr = langs.map(function () {    return this.innerHTML;}).get(); // 用get()拿到包含string的Array:['JavaScript', 'Python', 'Swift', 'Scheme', 'Haskell']
// first(),last(),slice()var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskellvar js = langs.first(); // JavaScript,相当于$('ul.lang li:first-child')var haskell = langs.last(); // Haskell, 相当于$('ul.lang li:last-child')var sub = langs.slice(2, 4); // Swift, Scheme, 参数和数组的slice()方法一致

操作DOM

<!-- HTML结构 --><ul id="test-ul">    <li class="js">JavaScript</li>    <li name="book">Java &amp; JavaScript</li></ul>
// text(),html()$('#test-ul li[name=book]').text(); // 'Java & JavaScript'$('#test-ul li[name=book]').html(); // 'Java &amp; JavaScript'
<!-- HTML结构 --><div id="test-div">    <ul>        <li><span>JavaScript</span></li>        <li><span>Python</span></li>        <li><span>Swift</span></li>    </ul></div>
// append(),prepend(),after(),before()var js = $('#test-div>ul>li:first-child');js.after('<li><span>Lua</span></li>');
// remove()var li = $('#test-div>ul>li');li.remove(); // 所有<li>全被删除
原创粉丝点击