×

jquery选择器

jquery选择器(如何学好jQuery选择器)

admin admin 发表于2023-05-23 15:33:09 浏览50 评论0

抢沙发发表评论

本文目录

如何学好jQuery选择器

首先不知道为啥要学jquery?jquery在react、vue、angular的时代已经用的很少了、前端这样、后端也这样!我们团队很多前端页面都是交给后端同学去写的、前端提供react基建即可、当然复杂页面除外。惊奇的发现后端同学也写的挺好、效率也还不错、特别是结合很多成熟的前端框架、一切都很祥和。

如果题主确实想学jQuery选择器也不是不可以、在百度搜关键字“高山上的鱼 CSDN”、里面有我以前学习jquery时候啃的源码、几乎每一行代码都有比较详细的论述。不过jquery选择器底层是基于sizzle的、其实还是比较复杂的。

反正学习技术没有什么捷径可走、多看源码、多吸收源码中的设计、不仅可提升基础能力、对于后续更高层次的架构设计也是锦上添花!

jquery name选择器前input可以省略吗


可以给name加个前缀,比如abc,后面是变量,
input:checkbox[name^=abc]:checked可以选择所有以abc开头的元素

jquery有没有name选择器


由于name通常只适用于表单元素中,所以并没有专门的name选择器。

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架)。

jQuery的模块可以分为:入口模块、底层支持模块和功能模块。其核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口。

具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。


jquery怎么获取name属性的值


1、编写基础的HTML文档。

2、使用.val()获取值。

3、保存文件,查看属性选择器获取的值。

4、然后在script里添加一个function,按钮事件的函数。使用jquery的 attr方法来设置属性就行了,参数第一个是要添加的属性名,第二个就是属性的值。这里我们为div添加一个id属性。

5、保存文件,查看.attr()就可以获取的属性值。


用jquery怎样获取input标签中name值


语句函数:val();

假设一个input代码:

JS代码如下:

运行结果:

扩展资料:

val() 方法返回或设置被选元素的值。元素的值是通过 value 属性设置的。该方法大多用于 input 元素。如果该方法未设置参数,则返回被选元素的当前值。

使用函数设置 Value 属性的值:

$(selector).val(function(index,oldvalue))

规定返回要设置的值的函数:

index - 可选。接受选择器的 index 位置。

oldvalue - 可选。接受选择器的当前 Value 属性。

参考资料:jquery--val()


jQuery选择器的工作原理和优化分析


每次申明一个jQuery对象的时候,返回的是jQuery.prototype.init
对象,很多人就会不明白,init明明是jQuery.fn的方法啊,实际上这里不是方法,而是init的构造函数,因为js的prototype对象可
以实现继承,加上js的对象只是引用不会是拷贝,new
jQuery,new
jQuery.fn和new
jQuery.fn.init的子对象是一样的,只是有没有执行到init的不同,这里就不讲原因了,等下一篇再讲为什么会是这样。
当我们使用选择器的时候$(selector,content),就会执行
init(selectot,content),我们看看inti中是怎样执行的:
复制代码
代码如下:
if
(
typeof
selector
==
“string“
)
{
//正则匹配,看是不是HTML代码或者是#id
var
match
=
quickExpr.exec(
selector
);
//没有作为待查找的
DOM
元素集、文档或
jQuery
对象。
//selector是#id的形式
if
(
match
&&
(match
||
!context)
)
{
//
HANDLE:
$(html)
-》
$(array)
//HTML代码,调用clean补全HTML代码
if
(
match
){
selector
=
jQuery.clean(
[
match
],
context
);
}
//
是:
$(“#id“)
else
{
//判断id的Dom是不是加载完成
var
elem
=
document.getElementById(
match
);
if
(
elem
){
if
(
elem.id
!=
match
)
return
jQuery().find(
selector
);
return
jQuery(
elem
);//执行完毕return
}
selector
=
;
}
//非id的形式.在context中或者是全文查找
}
else{
return
jQuery(
context
).find(
selector
);
}
}
这里就说明只有选择器写成$(‘#id’)的时候最快,相当于执行了一次
getElementById,后边的程序就不用再执行了。当然往往我们需要的选择器并不是这么简单,比如我们需要id下的CSS为className,
有这样的写法$(‘#id.className’)和$(‘#id’).find(‘.className’);这两种写法的执行结果都是一样的,比
如《div
id=”id”》《span
class=”className”》《/span》《/div》,返回的肯定都是《span
class=”className”》《/span》,但是执行的效率是完全不一样的。
在分析一下上边的代码,如果不是$(‘#id’)这样的简单选择器的话,都会执行find函
数,那我们再看看find到底是做用的:
复制代码
代码如下:
find:
function(
selector
)
{
//在当前的对象中查找
var
elems
=
jQuery.map(this,
function(elem){
return
jQuery.find(
selector,
elem
);
});
//下边的代码可以忽略,只是做一些处理
//这里应用了js的正则对象的静态方法test
//indexOf(“..“)需要了解一下xpath的语法,就是判断selector中包含父节点的写法
//本意就是过滤数组的重复元素
return
this.pushStack(
/[^+》]
[^+》]/.test(
selector
)
||
selector.indexOf(“..“)

-1
?
jQuery.unique(
elems
)
:
elems
);
}
如果这样写$(‘#id
.className’),就会执行到扩展的find(‘#id
.className’,document),因为当前的this是document的jQuery数组,那我们在看看扩展的find他的实现,代码比较
多,就不列出来,总之就是从第二个参数传递进行的dom第一个子节点开始找,遇见#比对id,遇见.比对ClassName,还有:《+-等处理。
那我们要优化,是不是就要想办法让第二个参数context的范围最小,那样遍历是不是就很少了?
如果我们这样写$(‘#id’).find(‘.className’),那程序只这样执行
的,第一次init的时候执行一步getElementById,就return了,接着执行
find(‘.className’,divDocument),divDocument就是我们第一次选择的是div标签,如果document下有很
多dom对象的时候,这次只遍历divDocument是不是少了很多次,而且在第一次选择id的速度也要比遍历快的多。
现在大家应该是明白了吧。就是说第一层选择最好是ID,而是简单选择器,目的就是定义范围,
提高速度,这次就说这些,选择写法的优化,其他的优化,下次再说。

Jquery 选择器


因为你找的是属性style=“display: block;“ 而你输入的却是div[style=’display: block’]
jQuery的 选择器是找属性值完全等于某个值 也就是说 少一个分号 少一个空格 那都无法匹配到的
如果你完全可以保证 style=““里面肯定等于 display: block; 而且 空格什么都匹配那才能成功
这里 就是因为你少了一个分号吧 当然 你可以设置 $(“div[style^=’display: block’]“); ^=就是说 以display: block 开头的
或者 把你那分号加上试试
这样做偶合性太高了 差个空格都不行
最好的办法就是
$(“div“).each(function(){//通过each来遍历
if($(this).css(“display“)==’block’){ //通过$(this).css(“css名“) 来获取当前遍历元素的display值
//这里就是display=block的
}
})

jquery中的选择器 和 css中的选择器有什么区别


这个是有区别的。
1、首先说两者是属于不同的两门语言,jQuery是属于js的一个框架,则其选择器是js里面的选择器,css是另一门不同于js的语言,其选择器是css选择器,则两者在根本上是不同的。
2、但是两者是有交集的,都是作为网页或者浏览器解析的语言,而js可以通过修改浏览器的dom对象来实现对css修改或者是控制。
3、可以简单的这样区分两者,css选择器用语css当中,js选择器应用于js当中,只不过有时两者使用相同的id标识来选择对象。