如何使用jquery获取相邻标记中子项的子项的值?

时间:2012-07-08 20:53:51

标签: jquery children next

从特定的div开始,我想使用jquery来获取下一个input块中div标记的值(两个级别)。我有这样的HTML结构:

<div class="firstClass1" id="firstID1"> // suppose I start from this element
    <div class="secondClass1" id="secondID1">
        <input value="myValue1"/>
    </div>
</div>
<div class="firstClass2" id="firstID2">
    <div class="secondClass2" id="secondID2">
        <input value="myValue2"/>
    </div>
</div>
<div class="firstClass3" id="firstID3">
    <div class="secondClass3" id="secondID3">
        <input value="myValue3"/>
    </div>
</div>
...

也就是说,如果我从.firstClass1开始,我想从myValue2获取值。我尝试使用以下jquery,但它不起作用:

var nextID = $('.div#firstID1').next().find('input').val();

var nextID = $('.div#firstID1').next().next().val();

4 个答案:

答案 0 :(得分:3)

这会有所帮助:http://jsfiddle.net/bQYZJ/

你有额外的.点以及id firstID1而不是firstID :)其他我根据你的需要调整了它。

希望得到这个帮助,

<强>码

var nextID = $('div#firstID1').next('div').find('input').val();

答案 1 :(得分:1)

您错过了引号,同时从dot移除了.div#firstID1

var nextID = $('div#firstID').next().find('input').val();

答案 2 :(得分:1)

.div替换为div

试试:

$('div[id^=firstID]').mouseenter(function(){
    var nextID = $(this).next().find('input').prop('value');
    alert( nextID ); // test it!
});

$('div[id^=firstID]')表示“ID以firstID开头的任何div”,
这将允许您获取任何“evented”元素的“下一个div输入值”,因此您无需重写任何firstID[N]元素的代码。

答案 3 :(得分:0)

您可以使用,

var nextID = $('div#firstID1 > div > input')

var nextID = $('div#firstID1').children().children()

var nextID = $('div#firstID1').children('div').children('input');

但是(由于我不知道的原因),find的工作速度比children>更快。