2015-03-31 4 views
0

У меня есть HTML как это:селектор JQuery, чтобы найти входы внутри DIV

<div class="s-item s-question"> 
    <label>label text</label> 
    <div> 
     <input name="s1" type="checkbox" class="switch-indeterminate k-input" 
       data-indeterminate="true" 
       data-on-text="Yes" 
       data-off-text="No" /> 
    </div> 
</div> 

Динамически с JQuery, как я могу выбрать этот вход? Я хочу определить, когда произойдет изменение.

Самый высокий уровень ДИВ всегда будет иметь класс s-item но вместо флажка, иногда может иметь кнопку или выберите поле и т.д.

Так что я подумал, что $('.s-item').find('select, input, button').change(function() { ... }); будет работать? Но это не так.

Что мне делать?

+0

Это работает здесь - http://jsfiddle.net/hvvdp9ox/ –

+0

'$ ('. S-item'). Find (': input')' –

ответ

2

Событие "change" действительна только для input, select и textarea элементов. Это не работает, потому что вы пытаетесь присвоить его элементу button.

$('.s-item').find('select, input, textarea').change(function() { ... }); 

должно работать.

Было бы чище, чтобы просто присвоить класс предметов, вы заботитесь о том, чтобы вы могли просто сделать

$(".s-change-watch").change(function() { ... }); 

, который лучше отделяет семантику разметки (например, какой элемент типа он есть) от функциональности.

0

Вы можете просто сделать следующее, чтобы получить флажок, то проверьте значение

$('.s-item div input') 

или просто дать на вход идентификатор или класс и выбрать то.

Смежные вопросы