繁体   English   中英

如何使用jQuery获取特定元素

[英]How can I get an specific element with jQuery

我有一排里面装有产品的盒子。 它们的名称各不相同,因为所有产品的ID均附有

<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;
        }
    }

参考关于问题的评论。 就是这个 ID在页面内也应该是唯一的。 您可以为此使用类。

<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 Demo: https : //jsfiddle.net/zLwytk9v/3/

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM