2014-10-16 49 views
0

我想要选择页面上出现的形式为volume_header_ + id#的div ID的第一个实例。如果我明确地输入了id#,例如volume_header_123,则代码有效。但是,当我尝试用一​​个通用选择器替换它以选择第一个匹配项时,不管什么id#都会中断。JQuery - 选择div class ID的第一个实例

<div class="volume_wrapper"> 
    <div id="volume_header_123" class="volume_header"> 
    … 
    </div> //end volume_header_123 
    <div id="volume_issues_123" class="volume_issues" style="display: block;"> 
    <div class="issue_wrapper"> 
     <div id="issue_header_123_6" class="issue_header"> 
     … 
     </div> //end issue_header_123_6 
     <div id="issue_toc_123_6" class="issue_toc" style="display: none;"> 
     <div class="toc_item"> 
      … 
     </div> //end toc_item 
     </div> //end issue_toc_123_6 
    </div> //end issue_wrapper 
    </div> //end volume_issues_123 
</div> //end volume_wrapper 

下面的代码工作正常明确说明的DIV ID的时候,但我需要让通用的,所以它选择的第一次出现,无论附加到volume_header_volume_issues_月底编号的。

 jQuery('#volume_header_123').css('border-bottom', '1px solid #cc0000'); 
     jQuery('#volume_header_123').addClass('selected'); 
     jQuery('#volume_issues_123').slideDown(50); 

我已经尝试用.EQ(0):首先,和几个根据一些在这个网站给对方的回答的其他选择,但我似乎无法找到正确的语法。

回答

0

$(“.volume_header”)。首先()。隐藏()

这是选择与类volume_header的第一个元素,然后将其隐藏。用你需要的函数调用替换隐藏调用。

当你使用动态的IDS只是指与类名的第一个元素,而不是

+0

最好的,这做到了!我之前尝试过的语法略微偏离了......我相信我在这里读过其他地方的文章,“.eq(0)”比'.first()'更好或更好的实践/更广泛的支持,是真的? – rkent 2014-10-16 20:59:45

+0

说实话,我不确定其中一个或另一个的好处,但如果它的效果很好!请标记为答案 – 2014-10-16 21:46:05

1

或者您可以使用此代码,作为一个孩子选择:

$('.volume_wrapper > .volume_header'); 
0

看看这个小提琴:
http://jsfiddle.net/6wp44kc3/
在我的例子我使用:

$("p", "div").eq(0).html("ha");

我正在使用eq在div元素的范围内选择第一段标记。然后我设置段落标签的html为ha。以这种方式使用eq将允许您选择第一个元素。

0

其他替代:

$($("div").get(0)).hide(); 
相关问题