【问题标题】:accessing a siblings in jquery在 jquery 中访问兄弟姐妹
【发布时间】:2013-11-24 23:53:54
【问题描述】:

这是我的代码:

<table><tr><td>hello</td>
       <td><input type="text" value="0" onkeypress="GetValue();" /></td>
       <td><input type="text" value="15"  /></td>
       </tr>
 </table>
   <script type="text/javascript">
   function GetValue(){
      //  ???

       }
   </script>

如何访问第三个 td 的值(值为 15 的 td) 不使用简单的方法并给 td 一个 id 并通过使用 .parent() 或 .siblings() 调用它,这是一个简化我的工作的简单示例,但在我的实际项目中,输入的值从 DB 绑定任何帮助都会变得复杂得多

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您可以通过 :nth-child() 选择器来实现。

JS代码:

$('table td:nth-child(3) input').val();

DEMO

【讨论】:

  • 没问题,不客气!事后请务必接受答案:-)
【解决方案2】:

您应该将 DOM 元素传递给 GetValue 函数:

<input type="text" value="0" onkeypress="GetValue(this);" />

并使用 jQuery 方法从下一个文本字段中获取值:

function GetValue(that) {
    var val = $(that).parent().next().find("input").val();
}

演示: http://jsfiddle.net/xzzUB/1/

【讨论】:

  • 您能否包含一个 jsfiddle 版本,因为我通过 jsfiddle 尝试了您的解决方案,它确实可以正常工作。
【解决方案3】:

$("td:eq(2) input").val() 将返回 15

见:http://docs.jquery.com/Selectors/eq

【讨论】:

    【解决方案4】:

    像这样改变输入:

    &lt;input type="text" value="0" onkeypress="GetValue(this);" /&gt;

    和功能:

    function GetValue(el){
      var sib = $(el).parent().siblings('td').last();
    }
    

    【讨论】:

    • sib 将是所有兄弟元素的数组,而不是 op 请求的最后一个 元素
    【解决方案5】:

    HTML

    <table id='theTable'><tr><td>hello</td>
           <td><input type="text" value="0" onkeypress="GetValue();" /></td>
           <td><input type="text" value="15"  /></td>
           </tr>
     </table>​​​
    

    使用 nth-child() jQuery 函数

    console.log($('#theTable td:nth-child(3)').children().val());​​​​​
    

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 2019-08-04
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多