Jquery 查找最近输入字段的值
请帮我查一下这把小提琴的密码。我试图实现的是从离“删除”按钮最近的字段中获取输入值:Jquery 查找最近输入字段的值,jquery,mobile,jquery-traversing,Jquery,Mobile,Jquery Traversing,请帮我查一下这把小提琴的密码。我试图实现的是从离“删除”按钮最近的字段中获取输入值: HTML如下所示: <ul> <li style="height: 200px; width:300px !important;margin-left: 30px;overflow: visible;"> <label for="control_name">Control Name:</label> <div class="ui-in
HTML如下所示:
<ul>
<li style="height: 200px; width:300px !important;margin-left: 30px;overflow: visible;">
<label for="control_name">Control Name:</label>
<div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset">
<input name="control_name" id="control_name" value="Fan" type="text"/>
</div>
<button type="button" onclick="deleteTheCtrl()" data-ajax="false" class="ui-btn ui-shadow ui-corner-all ui-icon-delete ui-btn-icon-notext deleteCtrlLink" title="Delete Control" value="Delete Control" height="30px">Get Name</button>
</li>
</ul>
高度:200px;宽度:300px!重要;左边距:30px;溢出:可见;“>
控件名称:
得名
如果li
中只有一个输入,则:
var ctrl_name = $(this).closest('li').find('input').val();
……但你的也行。真正的问题是,这个
不是你所期望的
要修复此问题,请将此
传递到deletetetechtrl
:
onclick="deleteTheCtrl(this)"
…然后使用该参数:
function deleteTheCtrl(btn) {
var ctrl_name = $(btn).closest('li').find('input').val();
// Or your: var ctrl_name = $(btn).parent().find("div").first().find("input").first().val();
}
但最好不要使用onclick
属性。相反,处理单击列表上的:
$("selector for the list").on("click", "button.deleteCtrlLink", function() {
var ctrl_name = $(this).closest('li').find('input').val();
// Or your: var ctrl_name = $(this).parent().find("div").first().find("input").first().val();
});
因为这是一个委托处理程序,所以即使在添加和删除列表项时,它也可以工作,前提是您使用列表的选择器标识的ul
或ol
元素未被删除/重新创建。(如果是,只需将鼠标钩在更远的位置。)
$("selector for the list").on("click", "button.deleteCtrlLink", function() {
var ctrl_name = $(this).closest('li').find('input').val();
// Or your: var ctrl_name = $(this).parent().find("div").first().find("input").first().val();
});