我有一些具有标题属性的可折叠面板 div。当我的 jQuery 打开面板时,我希望更改标题属性,并且我想通过当前打开的面板的类来指定要更改的 div。即 this.div.class 将标题更改为“随便”。
为了使代码变得愚蠢,您可以轻松地遵循:
<div class="panelContainer">
<div class="service">
<div class="serviceBrief" title="Click to Read More">
<p>Some Stuff for closed panel</p>
</div> <!-- end serviceBrief -->
<div class="serviceDescContainer">
<div class="serviceDesc">
<p>some more stuff that shows when panel is open</p>
</div><!-- end serviceDesc -->
</div><!-- end serviceDescContainer -->
</div><!-- end service -->
<div class="service">
<div class="serviceBrief" title="Click to Read More">
<p>Some Stuff for closed panel</p>
</div> <!-- end serviceBrief -->
<div class="serviceDescContainer">
<div class="serviceDesc">
<p>some more stuff that shows when panel is open</p>
</div><!-- end serviceDesc -->
</div><!-- end serviceDesc Container -->
</div><!-- end service -->
</div> <!-- end panelContainer -->
我了解如何使用 ID 执行此操作
$('#sampleID').attr('title', 'Click to Read More');
但我想这样做引用 div 类来更改标题属性,所以当面板打开时,标题=“点击阅读少”
我认为这会起作用:
$('.serviceBrief').attr('title', 'Click to Read Less');
确实如此,但显然它会更改 title 属性的所有实例,而不仅仅是打开的实例。我知道我错过了在 jQuery 中将其设为“this”类型的命令,但我所有的各种尝试都失败了,我终生无法在任何地方找到参考。
有人可以指出我正确的方向吗?谢谢!
$(document).ready(function() {
$('.serviceBrief').each(function(){
$(this).append('<div class="panelOpenArrow"></div><div class="panelClosedArrow"></div>');
});
$('.serviceBrief').click(function(){
if ($(this).parent().is('.open')) {
$(this).closest('.service').find('.serviceDescContainer').animate({'height':'0'},500);
$(this).closest('.service').find('.panelOpenArrow').fadeOut(500);
$(this).closest('.service').find('.panelClosedArrow').animate({'height': '25px'});
$(this).closest('.service').removeClass('open');
}else{
var newHeight = $(this).closest('.service').find('.serviceDesc').height() + 'px';
$(this).closest('.service').find('.serviceDescContainer').animate({'height':newHeight},500);
$(this).closest('.service').find('.panelOpenArrow').fadeIn(500);
$(this).closest('.service').find('.panelClosedArrow').animate({'height':'0'});
$(this).closest('.service').addClass('open');
}
});
});