jQuery遍历DOM - 单击按钮时按类查找项目

时间:2012-02-28 15:11:09

标签: jquery jquery-selectors

我没有要查看的ID,因为有些行是通过克隆动态插入的。

我正在查找与单击Check System按钮对应的systemname的值。

这是功能:

function getSystemInfo(btn){    
    var buttonClicked = $(btn);
    var firstSystemName = buttonClicked.parent().next().find($("input.systemname"));
    alert( $(firstSystemName).val() );
}            

以下是生成的源代码:

<div name="singleSystemDiv" class="offset-bg">
    <div class="field inline">
    <label class="frmFlds_labels">System Name</label>
    <input name="systemname" class="systemname" size="15" value="d1cti1d4" type="text">
    </div>
    <div class="field inline">
    <label class="frmFlds_labels">Location</label>
        <select id="location" name="location">
            <option value=""></option>
            <option value="Akron">Akron</option>
            <option value="Allen">Allen DC - Mob</option>
            <option value="Alpharetta">Alpharetta - Mob</option>
        </select>
    </div>
    <div class="field inline">
    <label class="frmFlds_labels">Platform</label>
        <select id="platform" name="platform" onChange="updateModels(this);" class="platform">
            <option value=""></option>
            <option value="IBM" selected="selected">AIX</option>
        </select>
    </div>
    <div class="buttons">
        <input value="Remove System" onClick="removeSystemRow(this);" type="button">
        <input value="Check System" onClick="getSystemInfo(this);" type="button">
    </div>
</div>

我写这个的方式,我的警报是开火,未定义。

我似乎不得不问很多关于遍历的问题。如果有人有一个演示这个的网站,请发布。关于.next(),parent()等的jQuery文档并没有为我做。

1 个答案:

答案 0 :(得分:0)

试试这个:

function getSystemInfo(btn){    
    var buttonClicked = $(btn);
    var $firstSystemName = buttonClicked.closest("div[name='singleSystemDiv']").find($("input.systemname"));
    alert($firstSystemName.val());
}  

Example fiddle

或者,您可以使用buttonClicked.parent().parent().find($("input.systemname"));,但我个人认为链式parent()来电有点难看。