0

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

在评论部分,我想在侧边栏 div 中显示一个主要的 CD 评论和刚刚提到的带有标题的其他 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 放入数组的建议非常好。

提前感谢您的帮助。

亚采克

4

1 回答 1

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();

现场测试用例

这假设您只有一个“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”内某些元素的事件处理程序执行。更新了小提琴

于 2013-05-13T07:45:34.657 回答