Niar
Niar

Reputation: 540

JQuery to add class to li element

Below is the code i have

function getName(selectName, selectedValue) {
    var partices = $('#dk_container_'+selectName);
    var selectlbl = partices.find('.dk_label');
    var ul = partices.find('.dk_options_inner');

    $('li').each(function () {
        if ($('a', this).text() == selectedValue) {
            $(this).addClass('dk_option_current');
            selectlbl.html(selectedValue);
        }
        else {
            $(this).attr('class', '');
        }
    });
}

The problem is $(this).addClass('dk_option_current');. This particular line is meant to insert a class dk_option_current in the li element where the if condition satisfies. This selectlbl.html(selectedValue); line is working correctly. But the class I want to add is not adding accordingly at all. Kindly point out if anything is wrong.

HTML

 <a class="dk_toggle" style="width: 300px;">
    <span class="dk_label"></span>
    </a>
    <div class="dk_options">
    <ul class="dk_options_inner">
    <ul class="dk_options_inner">
<li class="">
<a data-dk-dropdown-value=""> </a>
</li>
<li class="">
<a data-dk-dropdown-value="val1">Text1</a>
</li>
<li class="">
<a data-dk-dropdown-value="val2">Text2</a>
</li>
<li class="">
<a data-dk-dropdown-value="val3">Text3</a>
</li>
    </ul>
    </div>

Upvotes: 1

Views: 589

Answers (1)

amaters
amaters

Reputation: 2316

try this:

function getName(selectName, selectedValue)
{
var partices = $('#dk_container_'+selectName);
 var selectlbl=partices.find('.dk_label');
 var ul=partices.find('.dk_options_inner');
 $('li').each(function () {
    var elem = $(this);
    if($('a',this).text()== selectedValue){

      elem.addClass('dk_option_current');
      selectlbl.html(selectedValue);
    }
    else{
      elem.attr('class','');
   }
 });
}

Upvotes: 1

Related Questions