Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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
Javascript 函数中id的访问编号_Javascript_Jquery - Fatal编程技术网

Javascript 函数中id的访问编号

Javascript 函数中id的访问编号,javascript,jquery,Javascript,Jquery,我有以下菜单系统。当我向菜单添加更多步骤时,我需要编写一个新函数。如何编写一个函数来显示任何步骤的信息?我正在考虑提取每个id中的数字并将其传递到函数中,但我不确定如何实现。任何帮助都会很好,谢谢 HTML: 此.id.slice(-1)获取事件处理程序中的数字 $('[id^="step-info"]').on('click', function() { var numb = this.id.slice(-1); $('#step-info-cnt' + numb).show(

我有以下菜单系统。当我向菜单添加更多步骤时,我需要编写一个新函数。如何编写一个函数来显示任何步骤的信息?我正在考虑提取每个id中的数字并将其传递到函数中,但我不确定如何实现。任何帮助都会很好,谢谢

HTML:

此.id.slice(-1)
获取事件处理程序中的数字

$('[id^="step-info"]').on('click', function() {
    var numb = this.id.slice(-1);
    $('#step-info-cnt' + numb).show();
});

$('[id^="step-info-close"]').on('click', function() {
    var numb = this.id.slice(-1);
    $('#step-info-cnt' + numb).hide();
});
使用“attributes Start with”选择器,您可以选择多个元素

使用类似乎更合适

$('.step-info').on('click', function() {
    $(this).closest('h3').next('.popup').show();
});

$('.step-info-close').on('click', function() {
    $(this).closest('.popup').hide();
});

此.id.slice(-1)
获取事件处理程序中的数字

$('[id^="step-info"]').on('click', function() {
    var numb = this.id.slice(-1);
    $('#step-info-cnt' + numb).show();
});

$('[id^="step-info-close"]').on('click', function() {
    var numb = this.id.slice(-1);
    $('#step-info-cnt' + numb).hide();
});
使用“attributes Start with”选择器,您可以选择多个元素

使用类似乎更合适

$('.step-info').on('click', function() {
    $(this).closest('h3').next('.popup').show();
});

$('.step-info-close').on('click', function() {
    $(this).closest('.popup').hide();
});

我将使用正则表达式来提取它

this.id.match(/[0-9]+$/)

我将使用正则表达式来提取它

this.id.match(/[0-9]+$/)

您可以使用jQuery可用的任意数量的选择器

例如,使用CSS类:

<div class="step-info" style="margin-left: 13px; display: none; width: 420px;">
    <div>
        <i class="step-info-close">Close</i>
    </div>
    <div>
        <ul>
            <li>info item step 1A</li>
            <li>info item step 1B</li>
        </ul>
    </div>
</div>
<!-- and so on -->

您可以使用jQuery可用的任意数量的选择器

例如,使用CSS类:

<div class="step-info" style="margin-left: 13px; display: none; width: 420px;">
    <div>
        <i class="step-info-close">Close</i>
    </div>
    <div>
        <ul>
            <li>info item step 1A</li>
            <li>info item step 1B</li>
        </ul>
    </div>
</div>
<!-- and so on -->

没有必要一直数数。 您还可以使用类并将所单击的元素作为目标

尝试用类替换ID,并使用以下代码:

$('.step-info').click(function() {
$(this).parent().next().toggle();
});
$('.step-info-close').click(function() {
$(this).parent().parent().toggle();
//alert($(this).parent().attr("class"));
});
看下面的小提琴


没有必要继续计数。 您还可以使用类并将所单击的元素作为目标

尝试用类替换ID,并使用以下代码:

$('.step-info').click(function() {
$(this).parent().next().toggle();
});
$('.step-info-close').click(function() {
$(this).parent().parent().toggle();
//alert($(this).parent().attr("class"));
});
看下面的小提琴


正如Adeneo所建议的,您应该使用classAs,正如Adeneo所建议的,您应该使用ClassDoesn,如果您使用基于0的索引,是否将其限制为最多10个元素?如果您认为我下面的答案足以获得数字(使用正则表达式),您可以将其合并到您的答案中,我将删除我的答案。@JosephMarikle-您是对的,它确实将数字限制为一个数字,因此仅为0-9。至于正则表达式,我想我可能会使用
/\d+/.exec(this.id)
,但类似乎是其中的一种方式。如果使用基于0的索引,是否会将其限制为最多10个元素?如果您认为我下面的答案足以获得数字(使用正则表达式),您可以将其合并到您的答案中,我将删除我的答案。@JosephMarikle-您是对的,它确实将数字限制为一个数字,因此仅为0-9。至于regex,我想我可能会使用
/\d+/.exec(this.id)
,但是类似乎是一种方法。