【发布时间】:2009-09-18 06:53:42
【问题描述】:
在 jQuery 中,$("...").get(3) 返回第三个 DOM 元素。返回第三个jQuery元素的函数是什么?
【问题讨论】:
标签: jquery
在 jQuery 中,$("...").get(3) 返回第三个 DOM 元素。返回第三个jQuery元素的函数是什么?
【问题讨论】:
标签: jquery
【讨论】:
.eq()而不是:eq()吗?
.eq() 更适合 OP 的问题。 :eq() 用于$ 的字符串参数中,而.eq() 是现有jQuery 对象的方法。
$('select').find('option').eq(n) 基本上会忽略分组,将所有选项作为一个整体。如果你想要每个组,这样的东西是必要的:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
如果您可以控制构建 jQuery 对象的查询,请使用 :eq()
$("div:eq(2)")
如果您无法控制它(例如,它是从另一个函数或其他东西传递的),请使用.eq()
var $thirdElement = $jqObj.eq(2);
或者,如果您想要其中的一部分(例如,第三、第四和第五个元素),请使用 .slice()
var $third4th5thElements = $jqObj.slice(2, 5);
【讨论】:
.eq() 而不是:eq()。性能略有提升。
我觉得你可以用这个
$("ul li:nth-child(2)").append("<span> - 2nd!</span>");
它在每个匹配的 ul 中找到第二个 li 并记录它。
【讨论】:
.eq() - 一个整数,指示元素从 0 开始的位置。
例如:
考虑一个带有简单列表的页面:
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
我们可以将此方法应用于列表项集合:
$( "li" ).eq( 2 ).css( "background-color", "red" );
【讨论】:
如果你已经在一个变量中有jquery对象,你也可以把它当作一个普通的索引数组,不使用jquery:
var all_rows = $("tr");
for(var i=0; i < all_rows.length; i++){
var row = all_rows[i];
//additionally, you can use it again in a jquery selector
$(row).css("background-color","black");
}
虽然上面的例子没有任何用处,但它代表了如何将 jquery 创建的对象视为索引数组。
【讨论】:
<select> 元素的列表,并且您想要选定的组合框元素,请使用 $(row).val();
如果我正确理解你的问题,你总是可以像这样包装 get 函数:
var $someJqueryEl = $($('.myJqueryEls').get(3));
【讨论】:
eq()免费为您提供的。
如果您想在循环中获取特定元素/节点或标签,例如
<p class="weekday" data-today="monday">Monday</p>
<p class="weekday" data-today="tuesday">Tuesday</p>
<p class="weekday" data-today="wednesday">Wednesday</p>
<p class="weekday" data-today="thursday">Thursday</p>
所以,从上面的代码循环开始执行,我们想要选择特定的字段,我们必须使用 jQuery 选择,它只能从上面的循环中选择期望的元素,所以代码将是
$('.weekdays:eq(n)');
例如
$('.weekdays:eq(0)');
还有其他方法
$('.weekday').find('p').first('.weekdays').next()/last()/prev();
但当HTML <tag> 具有唯一的类名时,第一种方法更有效。
注意:当它们在目标元素或节点中没有类名时,使用第二种方法。
【讨论】:
不过,对于使用选择器的迭代似乎没有任何意义:
var some = $( '...' );
for( i = some.length -1; i>=0; --i )
{
// Have to transform in a jquery object again:
//
var item = $( some[ i ] );
// use item at will
// ...
}
【讨论】:
<html>
<head></head>
<body>
<script type="text/javascript"
src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('li:eq(1)').hide();
});
</script>
<ol>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ol>
</body>
</html>
当它运行时,有序列表中有两个项目显示,第一个和第三个。第二个被隐藏了。
【讨论】:
$(function(){
$(document).find('div').siblings().each(function(){
var obj = $(this);
obj.find('div').each(function(){
var obj1 = $(this);
if(!obj1.children().length > 0){
alert(obj1.html());
}
});
});
});
<div id="2">
<div>
<div>
<div>XYZ Pvt. Ltd.</div>
</div>
</div>
</div>
<div id="3">
<div>
<div>
<div>ABC Pvt Ltd.</div>
</div>
</div>
</div>
【讨论】: