jquery addClass到由属性选择的div

时间:2015-08-04 09:29:25

标签: jquery accordion

我手风琴在一页上。从另一个页面,我想链接到手风琴页面,并通过将“active”添加到该项目的div类中直接打开特定的手风琴项目。使用window.location.hash选择正确的div。

HTML手风琴页面:

<div id="accordion_sp1_id118" class="sp-accordion sp-accordion-style3 ">
 <div class="sp-accordion-item">
  <div id="#78" class="toggler">
   <span>My accordion header 1</span>
  </div>
  <div class="sp-accordion-container" style="display: none;">
   <div class="sp-accordion-inner">
    <p>Content panel accordion 1</p>
   </div>
  </div>
 </div>
<div class="sp-accordion-item">
 <div id="#99" class="toggler">
  <span>My accordion header 2</span>
 </div>
 <div class="sp-accordion-container" style="display: none;">
  <div class="sp-accordion-inner">
   <p>Content panel accordion 2</p>
  </div>
 </div>
</div>
<div class="sp-accordion-item">
 <div id="#92" class="toggler">
  <span>My accordion header 3</span>
 </div>
 <div class="sp-accordion-container" style="display: none;">
  <div class="sp-accordion-inner">
   <p>Content panel accordion 3</p>
  </div>
 </div>
</div>
</div>

Jquery脚本

<script type="text/javascript">
  jQuery(document).ready(function($){
  // YOU CAN NOW USE $ AS YOUR jQUERY OBJECT.
  $('div[id="'+location.hash+'"]').addClass('active');
  });
</script>

手风琴页面的网址包含例如“#92”链接到ID为“#92”的div。这个div应该在其类中添加“活动”。 然而,脚本似乎不起作用:错误在哪里?

请帮忙,坚持这个太久了。我对jquery知之甚少!

2 个答案:

答案 0 :(得分:1)

问题可能是哈希值可能包含前导#(我不认为它在旧浏览器中是统一的,所以我们需要处理这两种情况)

$('div[id="'+location.hash.replace(/^#/, '')+'"]').addClass('active');

或使用id选择器

$(location.hash.replace(/^([^#])/, '#$1')).addClass('active');

答案 1 :(得分:0)

根据激活手风琴的文件,请使用以下

// Getter =&gt;     var active = $(&#34; .selector&#34;)。accordion(&#34; option&#34;,&#34; active&#34;);

// Setter      =&GT; $(&#34; .selector&#34;)。accordion(&#34;选项&#34;,&#34;有效&#34;,2);

http://api.jqueryui.com/accordion/#option-active

希望这会有所帮助。