JQuery, чтобы выбрать сестру - PullRequest
1 голос
/ 09 ноября 2011

У меня проблемы с выбором входного значения из этого HTML:

<li class="t-item">
  <div class="t-mid">
    <span class="t-in t-state-selected">102/NAH</span>
    <input class="t-input" name="itemValue" value="subject:4033" type="hidden">
  </div>
</li>

Я могу получить значение элемента <span>, используя следующее:

var text = $("#TreeView .t-state-selected").text();

Как я могу получить значение элемента <input> родного брата?

Вот полная функция, если она помогает дать некоторый контекст (событие является событием Telerik TreeView OnLoad):

    function OnLoad(e) {
        // _lastSubject is known, find the selected node and get the detail
        var treeView = $('#TreeView').data('tTreeView');
        var text = $("#TreeView .t-state-selected").text();
        console.log("ugh, what I really want is the sibling input value"); 
    }

Ответы [ 4 ]

3 голосов
/ 09 ноября 2011

Попробуйте следующее

var i $('#TreeView .t-state-selected').next('input');

Это решение является несколько более надежным, поскольку оно гарантирует, что он получит элемент input по сравнению со следующим элементом любого типа.

1 голос
/ 09 ноября 2011

Вы можете использовать метод siblings(), которому может быть присвоен фильтр:

var $input = $("#TreeView .t-state-selected").siblings('.t-input');

Это будет работать, даже если другие элементы появятся позже между диапазоном и входомв то время как next() не будет).

jsFiddle Demo

0 голосов
/ 09 ноября 2011

Функция JQuery next () сделает это.

var i = $("#TreeView .t-state-selected").next();
0 голосов
/ 09 ноября 2011

Вы можете использовать далее

var $input = $("#TreeView .t-state-selected").next();
var inputVal = $input.val();
...