我有一排内置产品的盒子。它们的名称各有不同,因为所有产品的ID都附有a
<div id="plus" name="<?php echo $_item->getId()?>" onclick="greenUp()">+</div>
这是要添加的+号,它将放在每个产品的顶部。
var count = 0;
function greenUp() {
var idProduct = document.getElementById('plus').getAttribute('name');
if (count == 0) {
console.log(idProduct);
jQuery('input[name='+idProduct+']').addClass('selected-plus');
count = 1;
console.log(count);
}
else {
jQuery('input[name='+idProduct+']').removeClass('selected-plus');
count = 0;
console.log(count);
}
}
这是我尝试应用于点击每个框时绿色的功能,但是,当我点击第一个框时它可以工作,但如果我点击第二个框,第一个框将被关闭,就像它们在哪里只有一个元素。 任何想法将不胜感激。
编辑: 供将来参考 下面的所有答案对我来说都很有意义,我不知道它为什么不起作用。 我决心要做的是将id的值直接赋值给函数,如下所示:
<label for="related-checkbox<?php echo $_item->getId()?>"><div id="<?php echo $_item->getId()?>" class="plussign" onclick="greenUp(<?php echo $_item->getId()?>)">+</div></label>
并更改以下功能:
var setup = new Array();
function greenUp(id) {
var idProduct = id;
if (typeof(setup[id]) == 'undefined' || setup[id] == 0) {
jQuery('#'+idProduct).addClass('selected-plus');
setup[id] = 1;
}
else{
jQuery('#'+idProduct).removeClass('selected-plus');
setup[id] = 0;
}
}
答案 0 :(得分:0)
参考问题评论。这就是这个。 ID也应该在页面中是唯一的。你可以使用class。
<div id="plus" name="<?php echo $_item->getId()?>" onclick="greenUp(this)">+</div>
var count = 0;
function greenUp(clickedDiv) {
var idProduct = clickedDiv.getAttribute('name');
if (count == 0) {
console.log(idProduct);
jQuery('input[name='+idProduct+']').addClass('selected-plus');
count = 1;
console.log(count);
}
else {
jQuery('input[name='+idProduct+']').removeClass('selected-plus');
count = 0;
console.log(count);
}
}
使用Jquery演示:https://jsfiddle.net/zLwytk9v/3/
答案 1 :(得分:0)
<div name="<?php echo $_item->getId()?>" onclick="greenUp()">+</div>
当您使用JQ时,请执行以下操作:
var count = 0;
function greenUp() {
var idProduct = $(this).attr('name');
if (count == 0) {
console.log(idProduct);
jQuery('input[name='+idProduct+']').addClass('selected-plus');
count = 1;
console.log(count);
}
else {
jQuery('input[name='+idProduct+']').removeClass('selected-plus');
count = 0;
console.log(count);
}
}