2013-09-12 2 views
0

У меня есть код:Получить значение элемента такого же уровня?

<table> 
    <tr> 
     <td> 
      <input type="text" value="1" /> 
      <input id="button" type="button" value="Click me!" /> 
     </td> 
    </tr> 
</table> 

Я хочу, чтобы получить значение input[type="text"] на ниже код, но он не работает, пожалуйста, помогите мне

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#button").bind("click", function() { 
      alert($(this).siblings().find('input[type="hidden"]').val();); 
     }); 
    }); 
</script> 
+0

Я нет эксперт JQuery - но ISN» t найти проверку скрытого атрибута, который не существует в текстовом вводе? – Ian

+0

Вы использовали текст типа ввода, но искали скрытый тип ввода. – sudhAnsu63

+0

Сб о том, что :( –

ответ

2

Ну первая проблема заключается в том, что вы пытаетесь найти скрытые входы, а не вклад на основе текста. Кроме того, необходимо, чтобы переместить фильтр в брат и сестра называют, чтобы сделать это правильно работать, хотя вы имели дополнительную запятую тоже:

$(document).ready(function() { 
    $("#button").bind("click", function() { 
     alert($(this).siblings('input[type="text"]').val()); 
    }); 
}); 

См JSFiddle

1

использование jQuery prev() как в alert($(this).prev().val());

Он получает непосредственно предшествующего брата.

+0

Это предполагает, что DOM никогда не изменится ... Я не уверен, что увижу это как безопасное утверждение. – Ian

1

Попробуйте это.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#button").bind("click", function() { 
      alert($(this).parent().find('input[type=text]').val()); 
     }); 
    }); 
</script> 
+0

Я пробовал, но получаю «неопределенный» –

+0

Я обновил код, удаленная цитата вокруг текста. – sudhAnsu63

0

изменение

alert($(this).siblings().find('input[type="hidden"]').val()); 

в

alert($(this).siblings().find('input[type="text"]').val()); 
+0

Я предположил, что тоже и просто попытался в JSFiddle, но получил неопределенное изменение на это. – Ian

+0

ответ обновлен .. – roullie

+0

Найти запросы для детей, вход только для братьев и сестер() удалить .find() – Anton

2

Вам нужно найти в братьев и сестер не потомков братьев и сестер.

alert($(this).siblings('input[type="hidden"]').val()); 
3

.find() поиски детей, так что вы не можете использовать его здесь. Просто используйте siblings()

$(this).siblings('input').val() 
+1

+1 для того, чтобы быть единственным человеком, который действительно объяснил, почему исходный код не работал. – Ian

2

Попробуйте это.

$("#button").click(function() { 
      alert($(this).prev('input[type="text"]').val()); 
     }); 

Demo Here

+0

Я считаю, что предполагается, что DOM никогда не изменится ... поэтому он не так прочен, как его первоначальный план. – Ian

1

Прежде всего, Ваш тип вход text а не hidden. Вы выборки данных с использованием hidden в Jquery затем использовать, как показано ниже, если это скрыто:

$(document).ready(function() { 
    $("#button").bind("click", function() {    
     alert($(this).siblings('input[type="hidden"]').val()); 
    }); 
}); 

если это текст:

$(document).ready(function() { 
    $("#button").bind("click", function() {    
     alert($(this).siblings('input[type="text"]').val()); 
    }); 
}); 

Demo

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