jquery循环函数;隐藏div如果

时间:2013-05-12 22:57:57

标签: jquery

我目前正在开设一个新网站(音乐杂志),我需要使用一个非常方便的功能;我有一个粗略的想法,如何做到但无法使代码工作。

在评论部分,我想显示一个主要的CD评论和其他刚刚提到的侧边栏div中的标题CD。现在我不希望主显示CD同时列在侧边栏中。我正在尝试编写一个jquery函数,只要它与主显示CD标题匹配就会隐藏标题。

我想这里的想法是在这里创建一个if函数:if (main CD title) == (sidebar CD title)隐藏(包含CD标题的侧边栏);它必须自动遍历所有元素。

以下是受影响的代码示例:

HTML:

<div class="grid_12 alpha omega upper2" title="vil">
<div class="grid_8 upper alpha omega" id="vil"> 

grid_12是主CD,grid_8是侧边栏标题CD

jquery位:

if($('.grid_12').attr('title') == $('.grid_8').attr('title'))
{
$('.grid_8').attr('title').hide();
}

jquery代码肯定是错的,但这只是我想要的方式。

将所有唯一ID放入数组中的建议非常好。

提前感谢您的帮助。

亚切克

1 个答案:

答案 0 :(得分:0)

你无法隐藏标题,这是毫无意义的。您可以隐藏元素或清除其标题。

因此,改变其中任何一个,它将“起作用”:

$('.grid_8').hide();

或者:

$('.grid_8').attr('title', '');

再次阅读你说的话,我想我理解你的目标。这样的代码将隐藏具有类“grid_8”的元素,其标题与具有类“grid_12”的元素相同:

var titleToSearch = $('.grid_12').attr('title');
var matchingDiv = $('.grid_8[title="' + titleToSearch + '"]');
matchingDiv.hide();

Live test case

这假设您只有一个“grid_12”和几个“grid_8”元素。如果您有多个,并且每个“grid_12”包含多个“grid_8”,并且您希望找到其中一个具有匹配标题,则此处更新代码:

var parentGrid12 = $(this).parents(".grid_12");
var titleToSearch = parentGrid12.attr("title");
var matchingDiv = parentGrid12.find(".grid_8[title='" + titleToSearch + "']");
matchingDiv.hide();

$(this)假设代码正在作为“grid_12”中某个元素的事件处理程序执行。 Updated fiddle