Показать / скрыть Div на основе атрибута данных

0

Я хотел бы показать/скрыть div, используя атрибут data вместо значения. В этом примере http://jsfiddle.net/copperlocks/nebY8/8/, как я буду делать это в jQuery?

<select id="test" name="test">
    <option value="" data-id="">Select</option>
    <option value="1" data-id="a">Option 1</option>
    <option value="2" data-id="b">Option 2</option>
    <option value="3" data-id="c">Option 3</option>
    <option value="4" data-id="d">Option 4</option>
    <option value="5" data-id="e">Option 5</option>
</select>

<div id="something">Show Something</div>

Для значения...

$(document).ready(function () {
    toggleFields();
    $("#test").change(function () {
        toggleFields(); });
});

function toggleFields() {
    if ($("#test").val() > 2) $("#something").show();
    else $("#something").hide();
}

Я пробовал следующее, но, похоже, это не работает...

if ($("#test").data('id') == "a") 

if ($("#test").attr('data-id') =="a") 

Я новичок в этом и буду благодарен за вашу помощь :) Спасибо

Теги:

1 ответ

2
Лучший ответ

Атрибут данных привязан к опции, поэтому проверка выбранного варианта будет способом

if ($("#test option:selected").data('id')  == "a" )

FIDDLE

  • 0
    Если вы динамически создаете / изменяете html, вы должны использовать .attr ('data-id'), чтобы выбрать значение, так как .data кэшируется при создании страницы с последующим чтением с использованием кэшированных данных.
  • 0
    Пожалуйста, покажите, как использовать toggle(Boolean) вместо if / else

Ещё вопросы

Сообщество Overcoder
Наверх
Меню