Questions tagged «jquery-selectors»

选择器可以在jQuery中使用,以匹配文档中的一组元素。大多数CSS选择器以及一组自定义选择器均已实现。

4
是否应该将所有jquery事件都绑定到$(document)?
这是哪里来的 当我第一次学习jQuery时,通常会附加如下事件: $('.my-widget a').click(function() { $(this).toggleClass('active'); }); 在学习了更多关于选择器速度和事件委托的知识之后,我在几个地方读到“ jQuery事件委托将使您的代码更快。” 所以我开始写这样的代码: $('.my-widget').on('click','a',function() { $(this).toggleClass('active'); }); 这也是复制不推荐使用的.live()事件的行为的推荐方法。这对我来说很重要,因为我的许多站点始终都在动态添加/删除小部件。上面的行为与.live()并不完全一样,因为只有添加到已经存在的容器'.my-widget'中的元素才能获得该行为。如果在该代码运行后动态添加另一个html块,则这些元素将不会获得绑定到它们的事件。像这样: setTimeout(function() { $('body').append('<div class="my-widget"><a>Click does nothing</a></div>'); }, 1000); 我要实现的目标: .live()的旧行为//表示将事件附加到尚不存在的元素上 .on()的好处 绑定事件的最快性能 管理事件的简单方法 我现在附上所有这样的事件: $(document).on('click.my-widget-namespace', '.my-widget a', function() { $(this).toggleClass('active'); }); 这似乎可以满足我的所有目标。(是的,由于某种原因,它在IE中的运行速度较慢,不知道为什么吗?)之所以快,是因为只有单个事件绑定到单个元素,并且仅在事件发生时才评估辅助选择器(如果此处有误,请更正我)。命名空间很棒,因为它使切换事件监听器更加容易。 我的解决方案/问题 因此,我开始认为jQuery事件应始终绑定到$(document)。 有什么理由为什么您不想这样做? 可以认为这是最佳做法吗?如果没有,为什么? 如果您已阅读了整本书,则谢谢。我感谢任何/所有反馈/见解。 假设: 使用支持.on()//至少1.7版的jQuery 您希望将事件添加到动态添加的内容中 阅读/示例: http://24ways.org/2011/your-jquery-now-with-less-suck http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery http://www.jasonbuckboyer.com/playground/speed/speed.html http://api.jquery.com/on/

13
jQuery hasClass()-检查多个类
带有: if(element.hasClass("class")) 我可以检查一个类,但是有没有一种简单的方法可以检查“元素”是否具有多个类呢? 我在用: if(element.hasClass("class") || element.hasClass("class") ... ) 这还不错,但是我在想类似的东西: if(element.hasClass("class", "class2") 不幸的是,这不起作用。 有那样的东西吗?

12
jQuery与document.querySelectorAll
我多次听到jQuery最强大的资产就是它查询和操作DOM中元素的方式:您可以使用CSS查询创建复杂的查询,而这在常规javascript中是很难做到的。但是,据我所知,您可以使用Internet Explorer 8及更高版本支持的document.querySelector或来获得相同的结果document.querySelectorAll。 所以问题是这样的:如果可以用纯JavaScript实现最强大的资产,为什么要“冒险” jQuery的开销呢? 我知道jQuery不仅具有CSS选择器,例如跨浏览器AJAX,漂亮的事件附加等。但是它的查询部分是jQuery实力的很大一部分! 有什么想法吗?

8
通过内容完全匹配选择元素
好吧,我想知道是否有一种方法可以使:contains()jQuery的选择器仅使用键入的字符串来选择元素 例如 - <p>hello</p> <p>hello world</p> $('p:contains("hello")').css('font-weight', 'bold'); 选择器将选择两个p元素并使它们变为粗体,但我希望它仅选择第一个。

9
悬停父元素时更改子元素的CSS
首先,我假设这对于CSS3来说太复杂了,但是如果某个地方有解决方案,我很乐意使用它。 HTML非常简单。 <div class="parent"> <div class="child"> Text Block 1 </div> </div> <div class="parent"> <div class="child"> Text Block 2 </div> </div> 子div设置为显示:无;默认情况下,但随后更改为display:block; 当鼠标悬停在父div上时。问题是此标记出现在我网站上的多个位置,并且我只希望在鼠标悬停在其父对象上方时显示该子对象,而不是在鼠标悬停在其他任何父对象上时都显示该子对象(它们都具有相同的类)名称和ID)。 我尝试使用$(this)并且.children()无济于事。 $('.parent').hover(function(){ $(this).children('.child').css("display","block"); }, function() { $(this).children('.child').css("display","none"); });

6
如何获取div元素的所有子输入(jQuery)
HTML: <div id="panel"> <table> <tr> <td><input id="Search_NazovProjektu" type="text" value="" /></td> </tr> <tr> <td><input id="Search_Popis" type="text" value="" /></td> </tr> </table> </div> 我需要选择特定div中的所有输入。 这不起作用: var i = $("#panel > :input");

3
使用jQuery检查是否有任何祖先类
是否有jQuery的任何方法来检查,如果任何父,宏伟的父,伟大的盛大父母有一个类。 我有一个标记结构,使我无法在代码中执行以下操作: $(elem).parent().parent().parent().parent().hasClass('left') 但是,出于代码可读性的考虑,我想避免这种事情。有没有办法说“任何父母/祖父母/曾祖父母有此类”? 我正在使用jQuery 1.7.2。

4
将类选择器和属性选择器与jQuery结合
是否可以将类选择器和属性选择器与jQuery结合使用? 例如,给定以下HTML: <TABLE> <TR class="myclass" reference="12345"><TD>Row 1</TD></TR> <TR class="otherclass" reference="12345"><TD>Row 2</TD></TR> <TR class="myclass" reference="12345"><TD>Row 3</TD></TR> <TR class="myclass" reference="54321"><TD>Row 4</TD></TR> </TABLE> 我只能用来选择第1行和第3行的选择器是什么? 我努力了: $(".myclass [reference=12345]") // returns nothing $(".myclass, [reference=12345]") // returns all 4 rows (yes, I know the comma means 'or') 我敢肯定答案很简单,我已经尝试搜索jQuery论坛和文档,但似乎无法弄清楚。有人可以帮忙吗?



7
在jQuery中,如何设置元素的“顶部,左侧”属性的位置值相对于父级而不是相对于文档?
.offset([coordinates])方法设置元素的坐标,但仅相对于文档。那么如何设置元素的坐标,但相对于父元素呢? 我发现该.position()方法仅获得相对于父级的“顶部,左侧”值,但未设置任何值。 我尝试过 $("#mydiv").css({top: 200, left: 200}); 但不起作用。


6
具有一个选择器的多个事件处理程序的JQuery .on()方法
试图弄清楚如何将Jquery .on()方法与具有多个关联事件的特定选择器一起使用。我以前使用过.live()方法,但不确定如何使用.on()完​​成相同的功能。请在下面查看我的代码: $("table.planning_grid td").live({ mouseenter:function(){ $(this).parent("tr").find("a.delete").show(); }, mouseleave:function(){ $(this).parent("tr").find("a.delete").hide(); }, click:function(){ //do something else. } }); 我知道我可以通过以下方式分配多个事件: $("table.planning_grid td").on({ mouseenter:function(){ //see above }, mouseleave:function(){ //see above } click:function(){ //etc } }); 但是我相信.on()的正确用法将是这样的: $("table.planning_grid").on('mouseenter','td',function(){}); 有没有办法做到这一点?还是这里的最佳实践是什么?我尝试了下面的代码,但没有骰子。 $("table.planning_grid").on('td',{ mouseenter: function(){ /* event1 */ }, mouseleave: function(){ /* event2 */ }, click: function(){ /* …

2
jQuery查找具有特定类前缀的第一个父元素
我想获得具有特定类前缀的第一个父母,假设: <div class="div-a3332"> <div class="div-a89892"> <p> <div class="div-b2"> <div id="divid">hi</div> </div> </p> </div> </div> 例如,我当前的元素是#divid并且我想找到第一个具有类前缀div-a的元素。因此,基本上它将选择: <div class="div-a89892">


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.