简体   繁体   English

javascript 等价于 jquery 最接近().find()

[英]javascript equivalent to jquery closest().find()

<tr>
    <td><input type="text" class="rate" oninput="priceChanged(this)"> </td>
    <td><input type="text" class="quantity"></td>
    <td><input type="text" class="total"> </td>
</tr>

I can find the quantity textbox with jquery-我可以用 jquery 找到数量文本框-

var quantityTextbox = $('.rate').closest('tr').find('.quantity');

I would like to do it now with pure javascript.我现在想用纯 javascript 来做。

I am newcomer in the pure javascript world.我是纯 javascript 世界的新手。 Any idea?任何想法?

You can use querySelector & .closest() for this like:您可以为此使用querySelector & .closest()

 var quantityTextbox = document.querySelector('.rate').closest('tr').querySelector('.quantity') console.log(quantityTextbox.value)
 <table> <tr> <td><input type="text" class="rate" oninput="priceChanged(this)"> </td> <td><input type="text" class="quantity" value="10"></td> <td><input type="text" class="total"> </td> </tr> </table>


If you are calling this inside priceChanged() function, then you can use:如果你在priceChanged() function 中调用它,那么你可以使用:

function priceChanged(rate){
    var quantityTextbox = rate.closest('tr').querySelector('.quantity')
}

as you are already passing this inside priceChanged() function.因为你已经在priceChanged() function 中传递this

 function priceChanged(rate) { var quantityTextbox = rate.closest('tr').querySelector('.quantity') console.log(quantityTextbox.value) }
 <table> <tr> <td><input type="text" class="rate" oninput="priceChanged(this)"> </td> <td><input type="text" class="quantity" value="10"></td> <td><input type="text" class="total"> </td> </tr> </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM