如何同时选择动态生成的类和id的元素?

时间:2014-05-25 14:56:05

标签: jquery html

HTML

120:    $seperator= "<SEPERATOR>";
121:    echo "<div class='optionBox' onClick='selectOther(this.id)' id='".$OPid.$seperator.$OPlayer2ID."' >".$OPlayer2nam."</div>";

Jquery的

function selectOther(evalOTHERID){
   $("div[.*'selected'#'"+evalOTHERID+"']").css('opacity', '1');
   $("div[id='"+evalOTHERID+"']").css('opacity', '0.08');
   $("div[id='"+evalOTHERID+"']").addClass( "selected" );   
}

HTML行#120和#121在while循环中生成可选框,类似于下面的那个

=====   =====   =====
=43 =   =44 =   =45 = 
=====   =====   =====

单击每个可选框时,不透明度将更改为0.08,我的问题是如何取消选择之前选择的框?我尝试在jQuery: select an element's class and id at the same time?上使用建议的解决方案,但似乎我的集成存在问题。

我也尝试将其更改为:

    $("div[class*='selected'][id='"+evalOTHERID+"']").css('opacity', '1');

但它仍然不会将所选择的不透明度改回1。

我已经搜索了试图为其找到答案的问题,确实存在大量解决方案,但我是网络编程的新手,并且无法正确集成。顺便说一句,控制台没有错误。

请告诉我以何种方式获取已选择课程的元素的ID?我将不胜感激。

请帮助我编辑问题,如果不是很清楚,那么我会学到更多东西。赞赏。

1 个答案:

答案 0 :(得分:1)

你可以通过传递dom节点来简化一些事情:

onClick='selectOther(this)'

然后我们将它包装在jQuery $(elem)中并解决问题:

function selectOther(elem){
   $(elem).toggleClass("selected");

    if( $(elem).hasClass("selected") ){
        $(elem).css('opacity', '0.08');
    } else {
        $(elem).css('opacity', '1');
    } 

}