如何使用jQuery获取特定元素

时间:2016-01-25 19:52:11

标签: javascript php jquery html css

我有一排内置产品的盒子。它们的名称各有不同,因为所有产品的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;
        }
    }

2 个答案:

答案 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);
    }
}