Прокрутите выпадающий список и проверьте, имеет ли <option>определенный класс? - PullRequest
0 голосов
/ 06 июля 2018

<ul tabindex="-1" class="k-list k-reset" id="ddlEngineer_listbox" role="listbox" aria-hidden="true" aria-live="off" data-role="staticlist" unselectable="on">
  <li tabindex="-1" class="k-item k-state-selected" role="option" aria-selected="true" unselectable="on" data-offset-index="0">[Unassigned]</li>
  <li tabindex="-1" class="k-item" role="option" aria-selected="false" unselectable="on" data-offset-index="1">DANIEL RUSSELL</li>
  <li tabindex="-1" class="k-item" role="option" aria-selected="false" unselectable="on" data-offset-index="2">MELODY CAPONE</li>
  <li tabindex="-1" class="k-item k-state-selected k-state-focused" id="040e59b0-8d21-4368-8ea2-2bc1c4153133" role="option" aria-selected="true" unselectable="on" data-offset-index="3">[Show All]</li>
</ul>

У меня есть вышеуказанный HTML-код,

Используя Jquery, я хочу просмотреть выпадающий список и проверить, есть ли у какой-либо опции класс CSS, имя которогосодержит «сосредоточены», так что я могу заменить его на другой класс.А также измените свойство 'area-selected' на false

Пока я пробовал это ...

$("#ddlEngineer option").each(function(i){
var v=$('select[name="ddlEngineer"] option:selected').attr('class');
if(v.Contains("focused"))
{
$(this).addClass("k-item");

}
)};

Но, похоже, это не работает, как я вижу $('select[name="ddlEngineer"] option:selected').attr('class')имеющий undefined значение

1 Ответ

0 голосов
/ 06 июля 2018

Вы можете сделать это гораздо более простым способом:

$.fn.handleDropDown = function() {
    let $option = $(this).find("option.focused");

    if ($option.length) {
        $option
            .toggleClass("focused some-other-class") // remove the 'focused' class and add 'some-other-class'
            .attr("aria-selected", "false"); // change the value of 'aria-selected' attribute
    }
};

$("#ddlEngineer").handleDropDown();

Хотя я настоятельно советую вам не изменять значения свойств виджета кендо подобным образом. Чего бы вы ни хотели достичь в своем виджете, у него, вероятно, есть лучший - и семантический - способ сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...