编辑:对不起,我没有更正确地解释这一点,我添加了更多代码。它很乱,我认为可以大大简化,但是我在使用javascript时遇到了很多麻烦。
我正在尝试在页面上制作一系列带有“ +”和“-”的“更多”按钮,这些按钮在单击时会被替换掉。显然,每个人都需要独立于其他人进行操作。由于html放置原因,我无法使用CSS实现此功能。 (先于
原始帖子:我是这里的新手,也是javascript / jquery的新手。我试图搜索回答的问题。
如何结合使用这些功能,所以不必一遍又一遍地重复。换句话说:使用一个功能选择多个ID。
class ViewController: UIViewController {
var myStrongReference: PeoplePageViewDelegate?
init() {
self.myStrongReference = PeoplePageViewDelegate(….)
self.pageViewController.delegate = self.myStrongReference
}
}
答案 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>