我有一个带手风琴元素的功能(我在一个页面中有多个手风琴)并将其传递给另一个功能。在第二个功能中,我想选择每个手风琴内的第一个标题。我该怎么做?
$(document).ready( function()
{
$(".accordion").each(function(){
prep_accordion(this);
});
});
我试过这个。此函数中的第一个语句选择所有元素,第二个语句仅选择一个元素,但仅在第一次使用。我想让它选择每个手风琴中的第一个标题
function prep_accordion( element )
{
var headers = $(element).find('.accordion-header'); //Selects all headers
var header = $('.accordion-header').first(); //Selects first header, but only the first time function is called.
}
答案 0 :(得分:0)
让我们稍微打破一下......
在这里,您使用$(element).find()
,因此您的搜索仅限于当前元素中的折叠标题:
var headers = $(element).find('.accordion-header'); //Gets the current accordion's headers
但是在这里,你使没有引用element
参数。这将选择页面上的第一个标题 ,因为您没有将您的选择限制为仅当前元素:
var header = $('.accordion-header').first(); //Gets the first accordion-header on the entire page
由于您已经拥有当前元素的标题列表,因此无需使用其他选择器。只需从您已有的列表中获取第一个标题:
$(document).ready(function() {
$(".accordion").each(function(){
prep_accordion(this);
});
});
function prep_accordion(element) {
var headers = $(element).find('.accordion-header'); //Selects all headers
var header = headers.first(); //Gets the first header for the given element
}