jQuery学习之旅 Item2 选择器【二】_2输入选择器,阿里+头条+腾讯等大厂前端笔试题目分享

29 阅读2分钟
名称说明举例
[attribute]匹配包含给定属性的元素查找所有含有 id 属性的 div 元素: $(“div[id]”)
[attribute=value]匹配给定的属性是某个特定值的元素查找所有 name 属性是 newsletter 的 input 元素: $(“input[name=’newsletter’]”).attr(“checked”, true);
[attribute!=value]匹配给定的属性是不包含某个特定值的元素查找所有 name 属性不是 newsletter 的 input 元素: $(“input[name!=’newsletter’]”).attr(“checked”, true);
[attribute^=value]匹配给定的属性是以某些值开始的元素$(“input[name^=’news’]”)
[attribute$=value]匹配给定的属性是以某些值结尾的元素查找所有 name 以 ‘letter’ 结尾的 input 元素: $ (“input[name =’letter’]”)
[attribute*=value]匹配给定的属性是以包含某些值的元素查找所有 name 包含 ‘man’ 的 input 元素: $ (“input[name * =’man’]”)
[attributeFilter1][attributeFilter2][attributeFilterN]复合属性选择器,需要同时满足多个条件时使用。找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的: $ (“input[id][name =’man’]”)

<input type=”text” name=”username” value=”zhangsan” />
  • $ (“[name]”) —— 找到有name属性的元素
  • $(“[value=tom]”) —— 找到有value属性的元素,并且value的值等于tom
  • $(“[value^=to]”) —— 找到有value属性的元素,并且value的值是以to开始
  • ([value(“[value=ab]”) —— 找到有value属性的元素,并且value的值是以ab结尾
  • $(“[value*=ab]”) —— 找到有value属性的元素,并且value的值里边包含ab信息
  • $(“[value!=ab]”)

①找到有value属性的元素,并且value的值不等于ab
②或者是没有value属性元素

<input value=”123”><input value=”ab”>
  • $([name][class=^a][value!=123] ) —— 符合选择器,多个条件同时满足(并且,交集)
<script>
 function f1(){
 //$("[class]").css('color','red');//有class属性

 //$("[id=hello]").css("color","blue");//id=hello的元素

 //$("[class^=app]").css("color",'blue');//class内容以app开始

 //$("[class$=e]").css("color","red"); //class内容以e结尾

 //$("[class\*=p]").css("color","red"); //class内容包含p

 //class内容不为app123 或 没有class属性的
 //$("[class!=app123]").css("color","blue");

 //有id属性和class属性并且class不等于app123
 //$("[id][class!=app123][class]").css("color",'blue');

 //获得input元素,并且有class属性,内容以app开始
 $("[class=app123]input").css("color",'blue');
 //$("input:eq(2)").css("color",'blue');
 }

</script>

<body>
    <div class="apple">apple</div>
    <div class="app123">banana</div>

    <input type="text" value="tom" id="hello" class="peare"><br />
    <input type="text" value="jack" class="app123"><br />
    <input type="text" value="linken" class="apple"><br />

    <input type="button" value="触发" onclick="f1()">
    <p>I am bread</p>
</body>

6. 子元素过滤器 Child Filters

名称说明举例
:nth-child(index/even/odd/equation)匹配其父元素下的第N个子或奇偶元素 ‘:eq(index)’ 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的! 可以使用: nth-child(even) :nth-child(odd) :nth-child(3n) :nth-child(2) :nth-child(3n+1) :nth-child(3n+2)在每个 ul 查找第 2 个li: $(“ul li:nth-child(2)”)
:first-child匹配第一个子元素 ‘:first’ 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素在每个 ul 中查找第一个 li: $(“ul li:first-child”)
:last-child匹配最后一个子元素 ‘:last’只匹配一个元素,而此选择符将为每个父元素匹配一个子元素在每个 ul 中查找最后一个 li: $(“ul li:last-child”)
:only-child如果某个元素是父元素中唯一的子元素,那将会被匹配 如果父元素中含有其他元素,那将不会被匹配。在 ul 中查找是唯一子元素的 li: $(“ul li:only-child”)

1 :nth-child(index/even/odd)
匹配其父元素下的第N个子或奇偶元素
‘:eq(index)’ 只匹配一个元素,
而这个将为每一个父元素匹配子元素。
:nth-child从1开始的,而:eq()是从0算起的!

2 :first-child
匹配其父元素下的第一个子元素

3 :last-child
匹配其父元素下的最后一个子元素

4 :only-child
如果某个元素是父元素中唯一的子元素,那将会被匹配

容易与“简单过滤选择器”混淆
:first :eq() :last

<script>
 function f1(){
 //把全部的li汇合到一起找到第一个
 $("li:first").css("color","red"); //一个结果

 //first-child匹配其父元素下的第一个子元素
 $("li:first-child").css("color","blue"); //两个结果
 $("li:last-child").css("color","red");//两个结果

 $("li:nth-child(2)").css("background-color","lightblue"); //两个结果
 $("li:nth-child(even)").css("background-color","lightblue");
 $("li:nth-child(odd)").css("background-color","lightblue");

 //找到其父元素只有一个子元素的元素
 $("li:only-child").css('color','red');


### 结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。



![html5](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/154e3426008941138cffde7ffef27801~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1772616638&x-signature=PqE2quvloO6h4syc5w1cYkJl%2FSM%3D)


**开源分享:https://docs.qq.com/doc/DSmRnRGxvUkxTREhO**