2015-01-12 3 views
2

Как выбрать последний элемент DIV на основе проверенного флажка

$(".a").on('click',function(){ 
 
    alert($(this).next('input[type="hidden"]').attr('value')) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="id"> 
 
    <div> 
 
     <strong><input type="checkbox" value="1" class="a"> chbox1</strong> 
 
     <input type="hidden" value="1"> 
 
    </div>  
 
    <div> 
 
     <strong><input type="checkbox" value="1" class="a"> chbox1</strong> 
 
     <input type="hidden" value="2"> 
 
    </div>  
 
</div>

Как я могу получить скрытое значение элемента, когда я изменить статус флажка?
Кто-нибудь знает, дайте мне знать?
Спасибо

+1

Любопытно, что '' ? – j08691

+0

@ j08691 его 'сильный', когда клавиша' r' на вашей клавиатуре застряла. – Jamiec

ответ

2

Скрытый ввод в вашем коде не является родственным вашим ячейкам, ваш должен сначала выбрать родительский элемент, используя $(this).parent() или $(this.parentNode).

$(this.parentNode).next('input[type="hidden"]').val(); 
1

input является родственником вашего родительского strong элемента, поэтому сначала получить родитель, а затем искать .next('input[type="hidden"]').

Кроме того, вы можете использовать .val() вместо .attr('value').

$(".a").on('click',function(){ 
 
    alert($(this).parent().next('input[type="hidden"]').val()) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="id"> 
 
    <div> 
 
     <strong><input type="checkbox" value="1" class="a"> chbox1</strong> 
 
     <input type="hidden" value="1"> 
 
    </div>  
 
    <div> 
 
     <strong><input type="checkbox" value="1" class="a"> chbox1</strong> 
 
     <input type="hidden" value="2"> 
 
    </div>  
 
</div>

+0

$ (this.parentNode) .next ('input [type = "hidden"]'). Val();
Благодарим вас за ответ. – cfprabhu

1

Вот элемент DIV искал с двумя parent вызова метода, а затем find используется для поиска скрытого элемента. Я только что обнаружил (в другом stack post), который также можно изменить, чтобы определить изменение выбора флажка.

$(".a").on('click',function(){ 
 
    alert($(this).parent().parent().find('input[type="hidden"]').attr('value')) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="id"> 
 
    <div> 
 
     <stong><input type="checkbox" value="1" class="a"> chbox1</stong> 
 
     <input type="hidden" value="1"> 
 
    </div>  
 
    <div> 
 
     <stong><input type="checkbox" value="1" class="a"> chbox1</stong> 
 
     <input type="hidden" value="2"> 
 
    </div>  
 
</div>

+0

$ (this.parentNode) .next ('input [type = "hidden"]'). Val();
Благодарим вас за ответ. – cfprabhu

+1

@prabhu Мое удовольствие :-) Я тоже чему-то научился, в выбранном ответе использовался $ (this.parentNode), который, вероятно, впервые увидел jQuery-селектор: $ (..), примененный таким образом – jyrkim

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