我已经对jquery脚本进行了大量的非常次编辑,以满足我的需求,但我以前从未写过任何脚本。而现在我发现自己完全不知所措,所以我真的希望有人可以帮助我。
我有以下脚本在网页上创建标签:
$(document).ready(function() {
(function ($) {
$('.biog ul.tabs').addClass('active').find('> li:eq(0)').addClass('current');
$('.biog ul.tabs li a').click(function (g) {
var tab = $(this).closest('.biog'),
index = $(this).closest('li').index();
tab.find('ul.tabs > li').removeClass('current');
$(this).closest('li').addClass('current');
tab.find('.content').find('div.inner').not('div.inner:eq(' + index + ')').slideUp();
tab.find('.content').find('div.inner:eq(' + index + ')').slideDown();
g.preventDefault();
} );
})(jQuery);
});
但是,这些标签包含不同用户输入的数据,有时其中一个标签可能完全为空,因为它不适用于此人。
我可以使用以下行删除内容:
$(".history").filter(":contains('No Information')").remove()
但是这只会删除选项卡的内容,同时将选项卡本身留在要选择的选项列表中。
基本上,当传记div包含字符串“No Information”时,我想删除History选项卡 - 我不知道从哪里开始。我希望这一切都有道理,我希望有人能够帮助我。我真的很感激!
---编辑---
内容的HTML与标签完全分开。
<div class='biog'>
<h1> <!-- |field_17| --> </h1>
<div class='content'>
<div class='portrait inner'>
</div>
<div class='vitals inner'>
<div class='info'>
<div class='right'>
<div class='topgif'></div>
<div class='bottomgif'></div>
</div>
<div class='in'>
</div>
</div>
</div>
<div class='history inner'>
<div class='info'>
<div class='in'> <!-- |field_40| --> </div>
</div>
</div>
<div class='plots inner'>
<div class='info'>
<div class='shipgif'></div>
<div class='selfgif'></div>
<div class='ship'>
</div>
<div class='bottomright'>
<div class='links'>
</div>
<div class='plotinfo'> <!-- |field_47| --> </div>
</div>
</div>
</div>
</div>
<ul class='tabs'>
<li><a href='#'>portrait</a></li>
<li><a href='#'>vitals</a></li>
<li class='histtab'><a href='#'>history</a></li>
<li><a href='#'>plot</a></li>
</ul>
</div>
内容显示在此无序列表下方。
我实际上试图隐藏的唯一标签是历史记录 - 其他标签总是包含其中的信息。
答案 0 :(得分:0)
<击> 试试这个:
$(".history").filter(":contains('No Information')").parent().remove()
击> <击> 撞击>
如果我是对的,根据您的代码段,您的标签和内容按相对顺序排列,以便您可以执行以下操作
var index = $(".content").find(".history").filter(":contains('No Information')").index();
// Make sure it found an index
if(index !== -1){
$('.biog ul.tabs li').eq(index).remove();
}