2011-11-09 162 views
1

我无法从这个网站选择输入值:jQuery的选择兄弟

<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"); 
    } 
+0

当然,我试过next()。通过编写问题的过程,我的例子正在工作。我想这就是在SO上编写问题的价值。下面的@JaredPar也回答了我的一个问题,即“我可以在选择中包含”输入“,以防将来版本中的元素发生轻微变化。 – Brett

+1

我会使用兄弟姐妹而不是下一个,它更灵活一点你改变布局。 – Patricia

回答

3

请尝试以下

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

该解决方案是一个比较稳健的,因为这将确保它得到一个input元素VS只是任何类型的下一个元素。

0

你可以使用next

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

jQuery函数next()会做这个。

var i = $("#TreeView .t-state-selected").next(); 
1

可以使用siblings()方法,它可以给出一个过滤器:

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

这样即使其他元素后出现的跨度和输入之间(而next()不会)工作。

jsFiddle Demo