我正在尝试获取前一个元素。因此,当点击.percen
时,我想提醒前一个元素的值。目前我得到undefined
。有什么问题?
<input class="c currency" type="text" name="artigoAlternativo1_C"/>
<input class="d currency percen" type="text" name="artigoAlternativo1_D"/>
<br/>
<input class="c currency" type="text" name="artigoAlternativo1_C"/>
<input class="d currency percen" type="text" name="artigoAlternativo1_D"/>
$.fn.percentageFormat = function () {
this.each(function (i) {
$(this).change(function (e) {
var $curr = $(this);
$curr_ = $curr.prev('.c');
alert(this.value);
alert($curr_.prev().value);
});
});
return this;
}
$(function () {
$('.percen').percentageFormat();
});
答案 0 :(得分:3)
您正在调用prev
方法两次并且jQuery对象没有value
属性,请更改:
alert($curr_.prev().value);
要:
alert($curr.prev().val());
或:
alert($curr_.val());
答案 1 :(得分:3)
在您的代码$curr_
中是一个jQuery元素,因此您需要使用val()
来获取值。您也在使用prev()
两次。试试这个:
$.fn.percentageFormat = function () {
this.each(function (i) {
$(this).change(function (e) {
var $curr = $(this);
$curr_ = $curr.prev('.c');
alert(this.value);
alert($curr_.val()); // < Note no prev() here, and use of val()
});
});
return this;
}
$(function () {
$('.percen').percentageFormat();
});