Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 查找最近输入字段的值_Jquery_Mobile_Jquery Traversing - Fatal编程技术网

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();
});