我似乎无法获得这个代码的工作。我怎么得到的最接近值。abc当的点击按钮?

定义接近的

即:如果你点击按钮在哪里"A:"是的,我想一个数值为10。如果你点击按钮列在"B:"我需要价值20.

这里是代码:

<script type="text/javascript">
$(function(){

 $('.test').click(function(){
  var value = $(this)
     .parent()
     .parent()
     .closest(".abc")
     .attr("value")
  alert(value);
  return false
 });

});
</script>
<form name="myform">
<table>
 <tr>
     <td>A:</td>
        <td><input type="text" class="abc" name="a" id="a" value="10" /></td>
        <td><input type="text" name="vbn" id="vbn" /></td>
        <td><input type="text" name="mkl" id="mkl" /></td>
        <td><input type="button" class="test" name="test" id="test" value="test" /></td>
        <td>B:</td>
        <td><input type="text" class="abc" name="b" id="b" value="20" /></td>
        <td><input type="text" name="ews" id="ews" /></td>
        <td><input type="text" name="hrs" id="hrs" /></td>
        <td><input type="text" name="ew3" id="ew3" /></td>
        <td><input type="text" name="3ws" id="3ws" /></td>
        <td><input type="button" class="test" name="test" id="test" value="test" /></td>
    </tr>
    <tr>
     <td>C:</td>
        <td><input type="text" class="abc" name="c" id="c" value="30" /></td>
        <td><input type="text" name="oiu" id="oiu" /></td>
        <td><input type="text" name="dfe" id="dfe" /></td>
        <td><input type="button" class="test" name="test" id="test" value="test" /></td>
    </tr>
    <tr>
     <td>D:</td>
        <td><input type="text" class="abc" name="d" id="d" value="40" /></td>
        <td><input type="button" class="test" name="test" id="test" value="test" /></td>
    </tr>
</table>
</form>
有帮助吗?

解决方案

一个小时前,我写了一个插件,这可能有助于在这样的情况:这就是所谓nextALL.

你会用这样的:

$(":button").click(function() {
    $(this).prevALL("td:has(.abc)").eq(0).find(".abc").val();
});

其他提示

$('input.test').click(function() {

    $(this).parent()
           .prevAll('td:has(input.abc)')
           .find('input.abc:last')
           .val();

});

这里的一个的 工作演示

不顾事实,你的HTML代码的格式不正确与具有相同ID的多个元素,这段JavaScript代码没有做什么,你认为它。参考 http://docs.jquery.com/Traversing/closest closest()中查找树从你身在何处。没有任何元素在树上面直接任意的按钮匹配.abc。什么你要找的是邻居,而不是父母。

我会尝试这样的:

$(".test").click(function() {
  $(this).parent().parent().find(".abc").val();
});

但它并没有解决您的问题,即接近一个特定的按钮多个名为.abc。

为什么不只是写的代码“正常”和有一个按钮使用ID和多个类直接引用一个字段?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top