如何使用jQuery生成序列号?

4
我有一个人做了这个脚本(感谢Chyno Deluxe),它可以根据我们在框中输入的任何内容生成菜单列表,问题是,我需要生成一个连续添加到其中的数字序列。
以下是所需示例:
<li id='item1'></li> <li id='item2'></li> <li id='item3'></li> <li id='item4'></li>

在项目编号旁边生成的数字,1、2、3、4、5、6

我有一个生成数字的代码,但是它是固定的数字,在这里:

$.map($(Array(8)),function(val, i) { return i; })

这个只需要像这样做。
1,2,3,4,5,6,7,8

脚本
(function($) {
        "use strict";
        var t2h = {
                buildHTML: function() {
                        var i, list, type = this.htmlSelect.options;
                        if (type[1].selected) {
                                //console.log(type[1].text);
                                list = "<select>";
                                list += "\n";
                                for (i = 0; i < this.get_items().length; i++) {
                                        list += "  <option>";
                                        list += this.get_items()[i];
                                        list += "</option>";
                                        list += "\n";
                                }
                                list += "</select>";

您可以在下面看到使用jQuery代码生成演示的示例。
<select>
<option>menu 1</option>
<option>menu 2</option>
</select>

我需要通过添加标签id='' + 数字来改进它,就像这样

<select>
<option id='item1'>menu 1</option>
<option id='item2'>menu 2</option>
</select>

演示: [一个链接] http://codepen.io/diden/pen/YwwVKO

希望我可以在这里得到帮助,谢谢大家 :)


你需要提供你尝试过的代码示例,而不仅仅是一些样本,并要求我们为你完成它。 - Karl Gjertsen
我知道,我只需要了解一些基本的东西,就能帮助我把一个数字放进去。我只是为了我的学校项目和学习目的这样做 :/ - okezumi
这不是一个做作业的网站。如果你展示出你已经完成的代码,我们很乐意提供帮助。通过自己尝试,你会学到很多东西。 - Karl Gjertsen
抱歉我的英语不太好,我表达得不是很清楚。这不仅仅是工作方面的问题,我在CSS和HTML方面非常擅长,并开始喜爱jQuery。我是一个新手,但这就是我开始了解更多的方式,这就是我拥有的。 - okezumi
你可能需要了解一下Javascript中的字符串拼接。你可以使用"string"+27这样的方式,js会将其读作"string27"。所以只需将id设置为"item"+numCurrentlyOn,就可以愉快地玩耍了。另外,不必要的jQ,"趁年轻学习"之类的话也不用说了。 - abluejelly
2个回答

2
for (i = 0; i < this.get_items().length; i++) { // here i will go from 0 to the length of the items the select will have -1 
    list += "  <option>"; // for each of these values of i, we add the first part of the html to list, which is a string variable
    list += this.get_items()[i]; // this adds the ith text that the user wrote, but it´s 0 index based instead of starting with 1

所以你想要做的就是添加与用户输入行的索引相关联的id。 这只是i + 1!

所以:

list += "  <option id='item"+(i+1)+"'>"; // we open open and close "" to add (i+1) which is a varibale, and its the id we wanted

谢谢您的工作,先生。我非常感激。我会尝试并查看是否能够使其正常工作。再次感谢。 - okezumi
非常感谢!!它起作用了,我试了一个星期才得到这个结果,这是多么愚蠢啊,我尝试了很多行代码,只有一行解决了问题...上帝保佑你! - okezumi
@okezumi 没问题!下次三天后再提问哈哈。你选择的这段代码对于非有经验的用户来说不容易理解,但是加上注释应该就很容易懂了。除了处理 HTML 之外,几乎所有的都是 JS 循环和字符串拼接 ;) - juvian
非常感谢你,Juvian,我简直不敢相信现在我可以睡觉了:D - okezumi

0

在循环遍历项目时,将“item”与您的for循环迭代器加一(i + 1)连接起来,并将其设置为ID。(请注意,i从零开始,因此如果您希望它从1开始,则必须将其加1)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接