抓取元素id - jquery

时间:2010-01-05 04:59:22

标签: jquery

我正在寻找一种可以从我的页面中获取元素ID的方式:

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

我想获取id =“events”但我需要在这个事件所在的脚本中:

    $("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");
        }
    });

所以,换句话说,我想用jquery脚本中的'events'替换动态获取html页面上id元素的代码。

3 个答案:

答案 0 :(得分:1)

首先,当你还要上课时,不要使用css()隐藏它们。您可以在CSS中轻松完成此操作:

div.type_hidden { display: none; }

或根本不使用它。

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

此:

  • 获取单击的复选框的ID属性(例如“type_automotive”);
  • 在类选择器中使用它来隐藏/显示该类的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> 

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我不确定我是否理解这个问题,但我认为你想在检查输入时隐藏相应的div。另外,查看您的html-每页应该只有1个唯一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中执行一次。