jquery:读取div id并删除适当的div?

时间:2010-12-02 21:54:32

标签: jquery

哎, 我不知道这篇文章应该有什么标题,很难形容:)

我有一个带有数字的动态ID

<div id="post-full-116">Content</div>

<div id="post-116">Content</div>

我想查询id =“post-full-116”的动态数字(在本例中为116),如果存在id =“post-116”的页面上的另一个div,我想删除它。

我知道这听起来很奇怪。所以你得到它背后的想法,id =“post-number”的div保存帖子的预览,而id =“post-full-number”的div保存帖子的全部内容。

如果已经显示完整帖子,我不想显示帖子的预览 - 所以我只想用jquery隐藏它。我知道我之前应该在服务器端执行此操作,但在这种情况下,jquery将是完美的。

任何想法如何查询动态ID的数量并删除相同数字的相应div?

谢谢

4 个答案:

答案 0 :(得分:3)

$('div[id^="post-full"]').each(function(){
    $('#post-' + this.id.split('-')[2]).remove();
});

答案 1 :(得分:1)

.toggle()会显示div隐藏的内容,如果隐藏则隐藏它。 例如:

$("#post-full-116").toggle();
$("#post-116").toggle();

或者你可以检查div是否可见或隐藏:

if ($"#post-116").is(":visible")
{
  $("#post-116").hide();
  $("#post-full-116").show();
}
else
{
  $("#post-116").show();
  $("#post-full-116").hide();
}

答案 2 :(得分:1)

你能有一个&lt; div id =“post-116”&gt; Content&lt; / div&gt;并添加类似class =“full”的东西,如果它是完整大小的版本。如果从预览到完整大小视图,您只需找到id =“post-116”的元素并替换内容并添加属性。如果您从全尺寸视图进入预览,则再次找到div并替换内容并删除该类。

答案 3 :(得分:0)

我想你会做这样的事情:

$(function() {
    $('[id^=post-full]').each(function() {
         var num = $(this).attr('id').replace(/post\-full\-/,'');
         $('#post-' + num).hide();
    });
});

这应该抓住任何“完整”帖子,找到帖子的号码,并隐藏它的“预览”版本。

更新:

以下是现场演示:http://jsfiddle.net/Ender/saUQf/