2010-01-05 56 views
0

我正在寻找一种方式,我可以抓住从我的网页这样的元素ID:抢元素的id - jQuery的

<div id="events"> 
    <div id="event_1765" class="type_automotive start_125x125 color_Black"> 
     <h3>Leftlane News</h3> 
    </div> 
</div> 

我想获得的ID =“事件”,但我需要它在此脚本,这些事件是:

$("input.type_check").click(function() { 
     if($(this).is(':checked')) { 
      $("#events div."+$(this).attr('id')).removeClass('type_hidden'); 
      $("#events div").not(".type_hidden, .start_hidden, .color_hidden").css("display","block"); 
     } else { 
      $("#events div."+$(this).attr('id')).addClass('type_hidden'); 
      $("#events div."+$(this).attr('id')).css("display","none"); 
     } 
    }); 

因此,换句话说,我想与动态获取的HTML页面上的ID元素的代码替换在jQuery脚本的“事件”。

+0

你能发布的HTML标记,包括带班 'type_check' 元素? – rahul 2010-01-05 05:05:36

+0

整个代码可以在这里查看http://jsbin.com/exisi – Spyderfusion02 2010-01-05 05:07:16

回答

1

首先,不要在你上课时使用css()来隐藏它们。你可以很容易地做到这一点在你的CSS:

div.type_hidden { display: none; } 

或只是不使用,在所有。

$("input.type_check").click(function() { 
    $("div." + this.id).toggle($(this).is(":checked")); 
}); 

此:

  • 获取广告点击(例如, “type_automotive”)复选框的ID属性;
  • 在类选择器中使用它来隐藏/显示具有该类的div;和
  • 检查复选框状态以查看是否需要隐藏或显示它们。

没有必要使用“type_hidden”类或css("display", "none")(您不应该优先使用jQuery效果)。

注:这一切假设(从您的网站):

<input name="type[]" type="checkbox" id="type_automotive" 
    value="automotive" class="type_check" checked="checked" /> 

<div id="events"> 
    <div id="event_1768" class="type_automotive start_300x250 color_Black"> 
    <h3>Autoblog</h3> 
    </div> 
</div> 
+0

谢谢,这比我有更好的作品。 – Spyderfusion02 2010-01-05 15:59:23

0

那么,在那种情况下,你需要一些“选择器”。你怎么找到它?它总是第一个在其他'独特'的东西?它有特殊的课程吗?你需要一些独特的方法来定位它。

0

我不确定我是否理解这个问题,但我认为您想要在检查输入时隐藏相应的div。此外,看看你的html-应该每页只有一个唯一的id。您应该将id =“events”更改为class =“events”。一旦你这样做,JavaScript的我想你问的是:

$("input.type_check").click(function() { 
    if($(this).is(':checked')) { 
     $surroundingDiv = $("div." + $(this).attr('id')).parent().removeClass('type_hidden'); 
     $('div.events').not(".type_hidden, .start_hidden, .color_hidden").css("display","block"); 
    } else { 
     $("div."+$(this).attr('id')).parent().addClass('type_hidden'); 
     $("div."+$(this).attr('id')).parent().css("display","none"); 
    } 
}); 

此外,而不是设置一个类“type_hidden”,然后隐藏/显示用JavaScript它,我这样做只是在一次CSS。