如何将DOM对象的引用传递给jQuery函数?
我想将DOM对象的引用传递给jQuery函数。但是,该函数不获取对DOM对象的引用。它确实会得到一个包含DOM对象的字符串。所以我在下面的例子中得到了一个错误如何将DOM对象的引用传递给jQuery函数?,jquery,pass-by-reference,Jquery,Pass By Reference,我想将DOM对象的引用传递给jQuery函数。但是,该函数不获取对DOM对象的引用。它确实会得到一个包含DOM对象的字符串。所以我在下面的例子中得到了一个错误 <input type="text" size="30" onchange="change_total_price(this)" id="priceField"> 你需要像这样包装它: function change_total_price(input) { var val = $(input).closest('div
<input type="text" size="30" onchange="change_total_price(this)" id="priceField">
你需要像这样包装它:
function change_total_price(input) {
var val = $(input).closest('div').find('#amountField').val();
}
$(function() {
$("#priceField").change(function() {
var val = $(this).closest('div').find('#amountField').val();
});
});
this
,作为函数中的input
是一个DOM元素,但它是一个jQuery对象方法,因此如果您想使用它,需要将它包装起来以获取jQuery对象
或者,在标记之外执行此操作,如下所示:
function change_total_price(input) {
var val = $(input).closest('div').find('#amountField').val();
}
$(function() {
$("#priceField").change(function() {
var val = $(this).closest('div').find('#amountField').val();
});
});
通过这种方式将处理程序绑定到id=“preiceField”
元素,您可以删除内嵌的onchange=“change\u total\u price(This)”
…它既更干净,也更易于维护(例如,可以在页面外部的.js
中加载并缓存一次)
顺便说一句,ID应该是唯一的,所以它根本不需要是相对的,上面两个例子都可以是:
var val = $('#amountField').val();