jQuery-получить дочерний ввод на основе селектора имен



У меня есть событие onclick, которое вызывает функцию, передавая текущий div:



<div onclick="deleteline($(this));">


В моей функции deleteline, как я могу получить потомка родителя $(this), где имя содержит Qty?



В этом примере я ищу, чтобы получить поле ввода ProdQty:



<div>
<input id="PrdQty" type="hidden" value="1">
<div onclick="deleteline($(this));">
</div>


Править:
Эта страница включается несколько раз в другую страницу с помощью вызова ajax.
Поэтому, если я назначу кликабельному div идентификатор, это вызовет конфликт после того, как этот код будет введен в родитель во 2-й раз.



В результате я использовал предложения ниже, сохранил встроенный onclick и получаю кол-во С помощью: sender.родитель().find ('input[id*= "Qty"]')

416   5  

5 ответов:

Для этого можно использовать CSS селекторы в jQuery (http://api.jquery.com/category/selectors/)

Таким образом, ваш пример будет:

$(this).siblings("input[id*='Qty']")

, что вернет все входные данные на том же уровне, что и $(this), которые имеют 'Qty' в своем id в виде массива. Если вы хотите только первый, добавьте .сначала () на конец строки, т. е.:

$(this).siblings("input[id*='Qty']").first()

Почему бы не использовать API событий jQuery?

// make it as specific as you need
$('div').click(function() {
    // do something
});

И вы можете использовать .parent([selector]) функция в jQuery для получения родителя. И в этом примере вы можете использовать .prev([selector]) функция также, чтобы получить предыдущий элемент.

   <div>
      <input id="PrdQty" type="hidden" value="1">
      <div id="getChild"></div>   // here I give an ID to you div.you can also  use class
   </div>


   // binding click event on #getChild div

    $('#getChild').on('click', function() {

       $(this).parent().find('input[id~="Qty"]');

    });

Или:

<div>
    <input id="PrdQty" type="hidden" value="1">
    <div onclick="deleteline(this);">
</div>


function deleteline($this) {
   $($this).parent().find('input[id~="Qty"]');
}

Я предпочитаю удалить onclick из разметки HTML, потому что я люблю писать его в N ненавязчивом способе. Я хотел бы добавить имя класса, чтобы элемент div, чтобы быть выступать в качестве селектора

<div>
  <input id="PrdQty" type="hidden" value="1">
  <div class="divtoCheck" />
</div>


$(function(){
    $(".divtoCheck").click(function(){
         var child=$(this).parent().find("input[id*='Qty']")
        alert(child.attr("id"));
    });

});

Рабочий образец http://jsfiddle.net/gKnf3/10/

Вы захотите использовать атрибут , содержащий селектор , который предлагает jQuery.

Вот какой код я провернул: http://jsfiddle.net/luhn/RrczZ/

Edit: все остальные ответы, похоже, используют атрибут , содержащий селектор слов , который на самом деле не будет работать....

Comments

    Ничего не найдено.