Javascript下一个按钮数组

时间:2013-02-20 00:33:05

标签: javascript arrays event-handling

我在javascript中未被理解,希望能够获得一些链接到基于数组的id的按钮的帮助。这是数组

var baseline_next=new Array();
baseline_next[0]="#one";      
baseline_next[1]="#two";
baseline_next[2]="#three";
baseline_next[3]="#four";
baseline_next[4]="#five";
baseline_next[5]="#six";
baseline_next[6]="#six2";
baseline_next[7]="#seven";
baseline_next[8]="#eight";
baseline_next[9]="#nine";
baseline_next[10]="#ten";
baseline_next[11]="#eleven";
baseline_next[13]="#thirteen";
baseline_next[14]="#fourteen";
baseline_next[15]="#fifteen";
baseline_next[16]="#sixteen";
baseline_next[17]="#seventeen";
baseline_next[18]="#eighteen";
baseline_next[19]="#nineteen";
baseline_next[20]="#twenty";
baseline_next[21]="#twentyone";
baseline_next[22]="#twentytwo";
baseline_next[22]="#twentythree";

基本上我需要的是,当首先点击下一个按钮(“0”〜#one)时,我需要下一个按钮id成为两个,当再次点击时,它需要成为#three。我不知道如何将数组链接到按钮。我需要这样做的原因是因为我使用ajax来.load div内容,所以下一个按钮实际上没有提交,它只是一个新的下一个按钮。我不知道它是否重要,但这是按钮在点击时会发生的一部分。

$('#one').click(function(){
        $("#area").hide("slide", { direction: "left" }, 500);
        $("#area").load("test_it.jsp #area");
        $("#area").show("slide", { direction: "right" }, 500);
        $("#two").show();

        });
$('#two').click(function(){
    if((document.form1.baseline_01[0].checked || document.form1.baseline_01[1].checked| document.form1.baseline_01[2].checked)
    && (document.form1.baseline_02[0].checked || document.form1.baseline_02[1].checked) 
    && (document.form1.baseline_03_native.checked || document.form1.baseline_03_asian.checked|| document.form1.baseline_03_black.checked|| document.form1.baseline_03_pacific.checked|| document.form1.baseline_03_white.checked|| document.form1.baseline_03_other.checked)){
        if(document.form1.baseline_03_other.checked && document.form1.baseline_03_other_text.value==""){
            alert("Please fill in what other race you concider yourself to be.");
            return false;
        }else{
        $("#area").hide("slide", { direction: "left" }, 500);
        $("#area").load("test_it.jsp #area2");
        $("#area").show("slide", { direction: "right" }, 500);
            $("#three").show();
            return true;
        }
    }else{
        alert("Please select an answer for each question.");
        return false;
    }
        });

如果我的问题难以理解,我必须提前道歉,我今年刚刚开始编码。

4 个答案:

答案 0 :(得分:0)

我认为您应该考虑重新编写代码以使其不具有此ID列表,并在所有元素上使用单个类。这将有助于了解如何设置HTML以获得基于类的下一个元素。

虽然你已经有了这个厄运数组,但我想我们必须使用它。理想情况下,每个元素都有相同的类。比方说,.number

$(".number").on('click', function () {
    var nextID = baseline_next.indexOf(this.id) + 1;
});

如果你不能使用.number,那么你可以做同样的事情,除了每个需要绑定的ID列表。哎哟。在上面的函数中,nextID应该是单击元素后面的ID的索引。

顺便说一句,ID可以是数字,您甚至可以使用包含该数字的data-id。这也会更容易。

答案 1 :(得分:0)

好的,我真的需要问你为什么要这样做,你确定创建超过20个被称为“更好的方式”的想法吗?

无论如何,首先,您可以用速记方式创建数组:

var baseline_next= ["#one", "#two", "#four", "#five", "#six", "#six2" ..., "#twentythree";

(顺便说一句“#six2”?真的吗?)

然后做这样的事情:

var counter = 0; // start for the first one
$("#button").on('click', function () {
    var id = counter++;
    baseline[id]; // and I don't know what you want to do with this, but here it is!
});

答案 2 :(得分:0)

古老的问题。 (7年级)。这是一些我用来使用indexOf确定数组中下一项的逻辑。一旦到达数组末尾,这也将从头开始。

        let options = [true,false,null];
        let current = options.indexOf(this.get('order'));
        let next = (current+1 > options.length-1 ? 0 : current+1);
        this.set('order', options[next]);

答案 3 :(得分:0)

可以简化如下:

def current_pypi_version(package: str) -> str:
    req = urllib.request.Request(f'https://pypi.python.org/pypi/{package}/json')
    r = urllib.request.urlopen(req)
    if r.code == 200:
        t = json.loads(r.read())
        releases = t.get('releases', [])
        if releases:
            return sorted(releases)[-1]

请勿使用let baseline_next = ["#one", "#two", "#three"]; ,因为它的行为异常。

添加变量var来更改数组的索引。

count

let count = 0;
let baseline_next = ["#one", "#two", "#three"];
$(baseline_next[count]).click(function() {
    count++;
});