Javascript jQuery选择和滑动切换()

Javascript jQuery选择和滑动切换(),javascript,jquery,Javascript,Jquery,我有这样的html: <div id=1 class=header onclick="hideit(this.id)">Header1 <div class=content>Some content </div> </div> Header1 一些内容 在我的代码中有很多这样的结构,如果有人点击标题,我想切换第二个div(content) 我写了这个函数,但它不工作,有人能告诉我为什么吗 <script language="javascr

我有这样的html:

<div id=1 class=header onclick="hideit(this.id)">Header1
<div class=content>Some content
</div>
</div>
Header1
一些内容
在我的代码中有很多这样的结构,如果有人点击标题,我想切换第二个div(content)

我写了这个函数,但它不工作,有人能告诉我为什么吗

<script language="javascript">
    function hideit(hID)
    {
      var searcher = "div[id="+hID+"] .content";
      $(searcher).slideToggle();
    }
</script>

函数hideit(hID)
{
var searcher=“div[id=“+hID+”].content”;
$(搜索器).slideToggle();
}

因为您使用的是jQuery,所以实际上不需要内联调用函数。您可以使用这个简单的事件处理程序完成您要完成的任务:

$(".header").click(function() {
    $(this).find(".content").slideToggle();
});
此外,元素ID不应以数字开头

# is the selector for ids
那么你的情况呢

div#1 .content
理想情况下,这些“结构”共享一个公共父节点。如果有很多,那么最好使用事件委派。假设有一个id为
foo
,其中包含所有这些构造:

$('#foo').delegate('div.header', 'click', function( event ) {
    $(this).find('.content').slideToggle();
});
这将把一个事件处理程序绑定到共享父节点。如果没有公共父节点,则需要为每个
.header
div元素绑定一个事件处理程序:

$('.header').click(function() {
    $(this).find('.content').slideToggle();
});
html:

  • 虽然你的id属性在HTML5中可以是数字的,但我仍然强烈建议不要使用数字来开始你的id。也许id-1

  • 我会这样做

  • jquery/javascripit

    $(function(){ 
          ('div.header').click(function() {
             $('div.content', this).slideToggle(); });`
    )};
    
    html

    <div id='id-1' class='header'>Header1
      <div class='content'>Some content
      </div>
    </div>
    

    哈,你知道在你的文本前面放一个“#”符号会使它成为标题,对吗?因此,您的第一条注释是,
    #是Id的选择器
    ,您不能以数字开始Id。请参阅下面提到这一点的答案。
    $(".header").click(function() {
        $(".content", $(this)).slideToggle();
    });
    
    $(function(){ 
          ('div.header').click(function() {
             $('div.content', this).slideToggle(); });`
    )};
    
    <div id='id-1' class='header'>Header1
      <div class='content'>Some content
      </div>
    </div>
    
    //set regex
    var re = /(^\w+-)(\d+)$/i;
    
    //get attr broken into parts
    var str = $(this).attr('id').match(re)[1], 
        id  = $(this).attr('id').match(re)[2];