2

前の要素を取得しようとしています。したがって、クリックする.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();
});

デモ

4

2 に答える 2

3

メソッドを2回呼び出していてprev、jQueryオブジェクトにvalueプロパティがない場合は、次を変更し てください。

alert($curr_.prev().value);

に:

alert($curr.prev().val());

また:

alert($curr_.val());

http://jsfiddle.net/2gf95/

于 2012-12-05T10:24:18.543 に答える
3

コード$curr_にはjQuery要素があるためval()、値を取得するにはを使用する必要があります。また、prev()2回使用しています。これを試して:

$.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();
});

フィドルの例

于 2012-12-05T10:24:41.883 に答える