Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择器上的jQuery增量数_Jquery - Fatal编程技术网

选择器上的jQuery增量数

选择器上的jQuery增量数,jquery,Jquery,编辑问题以按请求添加jsfiddle.net链接。很抱歉。以下是链接: 我得到了如下函数: $(document).ready(function() { $('.innertabs2 > div').hide(); $('.innertabs2 div:first').show(); $('.innertabs2 ul.inner-tab-nav2 li:first').addClass('active'); $('.innertabs2 ul.inner-

编辑问题以按请求添加jsfiddle.net链接。很抱歉。以下是链接:

我得到了如下函数:

$(document).ready(function() {
    $('.innertabs2 > div').hide();
    $('.innertabs2 div:first').show();
    $('.innertabs2 ul.inner-tab-nav2 li:first').addClass('active');
    $('.innertabs2 ul.inner-tab-nav2 li a').click(function() {
        $('.innertabs2 ul.inner-tab-nav2 li').removeClass('active');
        $(this).parent().addClass('active');
        var currentTab = $(this).attr('href');
        $('.innertabs2 > div').hide();
        $(currentTab).fadeIn(400).show();
        //$(currentTab).show();
        return false;
    });
});​
请特别注意“.innertab”和“.innertab nav”选择器上的数字2。如何使此函数更具可扩展性,从而可以在页面上多次重用,而不是每次手动创建新函数

下面是我正在使用的HTML的简化版本:

<div class="tabs"><!--begin tab container-->

<ul class="tab-nav">
    <li><a href="#menu1">Menu 1</a></li>
    <li><a href="#menu2">Menu 2</a></li>
    <li><a href="#menu3">Menu 3</a></li>
</ul>

<div id="MenuContent"><!-- begin main tab's content-->

        <div class="innertabs2"><!--begin subtab set 1 (need to autoincrement number)-->

            <ul class="inner-tab-nav2">
                <li><a href="#submenu1">Submenu 1</a></li>
                <li><a href="#submenu2">Submenu 2</a></li>
                <li><a href="#submenu3">Submenu 3</a></li>
            </ul>

            <div id="submenu1"><!--begin tab 1-->                   

                {{CONTENT}}

            </div><!--end tab 1-->

            <div id="submenu2"><!--begin tab 2-->

                {{CONTENT}}

            </div><!--end tab 2-->

            <div id="submenu3"><!--begin tab 3-->

                {{CONTENT}}

            </div><!--end tab 3-->

        </div><!--end subtab set 1-->

</div><!--end main tab's content-->

你缺少了一堆+和',最后还有额外的}

$(".tabs > div").each(function(i) {
    $('.innertabs' + i + ' > div ').hide();
    $('.innertabs '+i +' div:first').show();
    $('.innertabs' + i + 'ul.inner-tab-nav' + i + ' li: first ').addClass('active ');
    $('.innertabs '+i +'ul.inner - tab - nav '+i+' li a').click(function() {
    $('.innertabs' + i +' ul.inner-tab-nav' + i +' li ').removeClass('active');
    $(this).parent().addClass('active');
    var currentTab = $(this).attr('href');
    $('.innertabs '+i +' > div').hide();
    $(currentTab).fadeIn(400).show();
    return false;
});

你缺少了一堆+和',最后还有额外的}

$(".tabs > div").each(function(i) {
    $('.innertabs' + i + ' > div ').hide();
    $('.innertabs '+i +' div:first').show();
    $('.innertabs' + i + 'ul.inner-tab-nav' + i + ' li: first ').addClass('active ');
    $('.innertabs '+i +'ul.inner - tab - nav '+i+' li a').click(function() {
    $('.innertabs' + i +' ul.inner-tab-nav' + i +' li ').removeClass('active');
    $(this).parent().addClass('active');
    var currentTab = $(this).attr('href');
    $('.innertabs '+i +' > div').hide();
    $(currentTab).fadeIn(400).show();
    return false;
});

与使用.each进行不必要的迭代不同,您可以使用属性选择器^=开始,如下所示:

$('[class^="innertabs"] > div').hide();
$('[class^="innertabs"] div:first').show();
$('[class^="innertabs"] ul[class^="inner-tab-nav"] li:first').addClass('active');
$('[class^="innertabs"] ul[class^="inner-tab-nav"] li a').click(function() {
    $('[class^="innertabs"] ul[class^="inner-tab-nav"] li').removeClass('active');
    $(this).parent().addClass('active');
    var currentTab = $(this).attr('href');
    $('[class^="innertabs"] > div').hide();
    $(currentTab).fadeIn(400).show();
    return false;
});

与使用.each进行不必要的迭代不同,您可以使用属性选择器^=开始,如下所示:

$('[class^="innertabs"] > div').hide();
$('[class^="innertabs"] div:first').show();
$('[class^="innertabs"] ul[class^="inner-tab-nav"] li:first').addClass('active');
$('[class^="innertabs"] ul[class^="inner-tab-nav"] li a').click(function() {
    $('[class^="innertabs"] ul[class^="inner-tab-nav"] li').removeClass('active');
    $(this).parent().addClass('active');
    var currentTab = $(this).attr('href');
    $('[class^="innertabs"] > div').hide();
    $(currentTab).fadeIn(400).show();
    return false;
});

您可以使用几个类来区分元素,同时在脚本中使用公共类:

<div class="tabs">

    <ul class="tab-nav">

    <div class="inner-tabs second">
        <ul class="inner-tab-nav second">
        </ul>

        <div class="inner-tabs third">
            <ul class="inner-tab-nav third">
            </ul>
        </div>

    </div>
在脚本中,您可以简单地使用class.internal选项卡对行为进行编码。 在CSS中,您可以组合.inner-tabs.second来区分样式

我认为CSS类的这种使用产生了更清晰的标记以及更多的语义


此外,使用过于复杂的jquery选择器会降低选择速度,并且可读性较差:。内部选项卡比[class^=innertabs]乍一看更有意义,对吗?

您可以使用几个类来区分元素,同时在脚本中使用公共类:

<div class="tabs">

    <ul class="tab-nav">

    <div class="inner-tabs second">
        <ul class="inner-tab-nav second">
        </ul>

        <div class="inner-tabs third">
            <ul class="inner-tab-nav third">
            </ul>
        </div>

    </div>
在脚本中,您可以简单地使用class.internal选项卡对行为进行编码。 在CSS中,您可以组合.inner-tabs.second来区分样式

我认为CSS类的这种使用产生了更清晰的标记以及更多的语义


此外,使用过于复杂的jquery选择器会降低选择速度,并且可读性较差:。内部选项卡比[class^=innertabs]乍一看更有意义,对吗?

例如,您的代码最好查看一下,这样每个人都可以运行它,更好地看到您的问题。您是对的,没有意识到JSFIDLE.net。下面是我实际代码的链接,希望您能更好地了解我试图实现的目标:例如,您的代码最好在这里查看,这样每个人都可以运行它,更好地了解您的问题。您是对的,没有意识到jsfiddle.net。这里是我实际代码的链接,希望您能更好地看到我试图实现的目标:+1井点@Derek这是使用IDE的一个很好的理由。就个人而言,NetBeans是我的最爱。使用IDE将帮助您避免此类问题。是的,我认为我的语法不正确。仍然无法让这个代码工作,即使我修复了抛出的额外空格。+1井点@Derek这是使用IDE的一个很好的理由。就个人而言,NetBeans是我的最爱。使用IDE将帮助您避免此类问题。是的,我认为我的语法不正确。即使在我修复了抛出的额外空间后,仍然无法使代码正常工作。这是一个很好的方法。我真的需要开始更多地查看不同的属性选择器。但我需要脚本在“innertabs”选择器的末尾查找数字或其他标识符,而不仅仅是文本“innertabs”。也许我误解了这是怎么回事?很好的方法。我真的需要开始更多地查看不同的属性选择器。但我需要脚本在“innertabs”选择器的末尾查找数字或其他标识符,而不仅仅是文本“innertabs”。也许我误解了这是怎么回事?说得好。但是,我仍然不确定如何创建一个将在“.innertab”和“.innertab nav”选择器上迭代的函数。如何在脚本中指定“第二个”和“第三个”选择器?为什么?如果行为是一样的,你就不在乎是第二个还是第三个……好的观点。但是,我仍然不确定如何创建一个将在“.innertab”和“.innertab nav”选择器上迭代的函数。如何在脚本中指定“第二个”和“第三个”选择器?为什么?如果行为是一样的,你并不在乎是第二个还是第三个。。。