如何合并这些功能?

时间:2019-02-08 04:51:45

标签: javascript html

编辑:对不起,我没有更正确地解释这一点,我添加了更多代码。它很乱,我认为可以大大简化,但是我在使用javascript时遇到了很多麻烦。

我正在尝试在页面上制作一系列带有“ +”和“-”的“更多”按钮,这些按钮在单击时会被替换掉。显然,每个人都需要独立于其他人进行操作。由于html放置原因,我无法使用CSS实现此功能。 (先于

原始帖子:我是这里的新手,也是javascript / jquery的新手。我试图搜索回答的问题。

如何结合使用这些功能,所以不必一遍又一遍地重复。换句话说:使用一个功能选择多个ID。

class ViewController:  UIViewController { 

    var myStrongReference: PeoplePageViewDelegate?
    init() {

        self.myStrongReference = PeoplePageViewDelegate(….)

        self.pageViewController.delegate = self.myStrongReference

    }

}

3 个答案:

答案 0 :(得分:1)

刚开始时,如何做

function moreless(thecheckbox, thelabel) {
    var checkboxvar = document.getElementById(thecheckbox);
    var labelvar = document.getElementById(thelabel);
    if (!checkboxvar.checked) {
        labelvar.innerHTML = "+";
    }
    else {
        labelvar.innerHTML = "-";
    }
}

function moreless1(thecheckbox, thelabel) {
    moreless(thecheckbox, thelabel);
}

function moreless2(thecheckbox, thelabel) {
    moreless(thecheckbox, thelabel);
}

function moreless3(thecheckbox, thelabel) {
    moreless(thecheckbox, thelabel);
}

function moreless4(thecheckbox, thelabel) {
    moreless(thecheckbox, thelabel);
}

进一步的改进是使用不同的参数调用moreless

答案 1 :(得分:0)

您的问题不清楚。但是似乎您想对具有不同id的相同类型的元素使用单个函数。您尚未定义何时以及如何调用该函数。

不过,对于具有不同ID的相同类型的元素使用单个函数,您可以在元素之间定义一个通用类,并在它们之间的javascript循环内定义一个单个函数-

<input type="checkbox" id=checkbox1" class="common-cls" value="Checkbox 1" data-label-id="label1">Checkbox 1
<input type="checkbox" id=checkbox2" class="common-cls" value="Checkbox 2" data-label-id="label2">Checkbox 2
 .........

在内部脚本中,您可以执行以下操作-

$('.common-cls').each(function() {
    var checkboxvar = this.id;
    var labelvar = $(this).attr('data-label-id');
    moreless(checkboxvar, labelvar );
});

您只需要定义一个函数就可以了。

答案 2 :(得分:0)

仅在标签上使用id,然后在输入上添加onClick(moreless(this,'labelID'))this关键字指的是输入标签,因此您不必在复选框上添加id属性

代码:

<input type="checkbox" onClick="moreless(this,'label1')">
<span id='label1'>Hello</span>
<input type="checkbox" onClick="moreless(this,'label2')">
<span id='label2'>World</span>

<script>
    function moreless(thecheckbox, thelabel) {
        var labelvar = document.getElementById(thelabel);
        if (!thecheckbox.checked) {
            labelvar.innerHTML = "+";
        } else {
            labelvar.innerHTML = "-";
        }
    }

</script>

 function moreless(thecheckbox, thelabel) {
            var labelvar = document.getElementById(thelabel);
            if (!thecheckbox.checked) {
                labelvar.innerHTML = "+";
            } else {
                labelvar.innerHTML = "-";
            }
        }
    <input type="checkbox" onClick="moreless(this,'label1')">
    <span id='label1'>Hello</span>
    <input type="checkbox" onClick="moreless(this,'label2')">
    <span id='label2'>World</span>