简体   繁体   English

通过类名称在Jquery选择器中选择元素并将其转换回Jquery对象

[英]Select element in Jquery selector by class name and convert it back to Jquery object

I don't understand why when i looking for how to get an element in list of element selected by class name like in traditional JS, I've always seen complicated answers . 我不明白为什么当我寻找如何像传统JS一样在类名选择的元素列表中获取元素时,总是会看到复杂的答案。

document.getElementsByClassName('anyclass')[1]

so, i have found out myself that i cant do that (may be its the wrong approach) 所以,我发现自己做不到(可能是错误的方法)

$('.anyclass')[1]

but i get a DOM element! 但是我得到了一个DOM元素! so logically i tried 所以我在逻辑上尝试过

$('.anyclass')[1][0]

and it doesnt work 'TypeError: $(...)[0][0] is undefined' Anyone can explain why ? 并且不起作用'TypeError:$(...)[0] [0]未定义'任何人都可以解释为什么? thank you! 谢谢!

var elm = document.createElement("div");
var jelm = $(elm); //convert to jQuery Element
var htmlElm = jelm[0]; //convert to HTML Element

I think you need .eq(index) 我认为你需要.eq(index)

 var secondElement = $('.anyClass').eq(1); //jQuery object var domElement = secondElement[0]; //DOM element console.log(secondElement, domElement) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='anyClass'>1</div> <div class='anyClass'>2</div> 

The :first pseudo-class is equivalent to :eq( 0 ) . :first伪类等效于:eq( 0 ) It could also be written as :lt( 1 ) . 它也可以写成:lt( 1 ) While this matches only a single element, :first-child can match more than one: One for each parent. 虽然这仅匹配一个元素,但:first-child可以匹配多个:每个父对象一个。

here 这里

$('.anyclass:first)

Quick example: 快速示例:

 <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $(document).ready(function(){ $($(".t")[1]).css("background-color", "yellow"); }); </script> </head> <body> <p class=t>This 1.</p> <p class=t>This 2.</p> <p class=t>This 3.</p> </body> </html> 

'

$('.anyclass')[0].attr("src");  you can use like this .

after your comment: $(".anyclass")[1] is a DOM element not a jquery object. 在您的评论之后: $(".anyclass")[1]是DOM元素,而不是jquery对象。 Simply wrap it as jquery $($("td")[1]).width() 只需将其包装为jquery $($("td")[1]).width()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM