0

私はこれがすでに疑問視されていることを知っていますが、私のコードは私が望んでいたものに到達することができません。

<table id="dataTable" style="width: 450px;">
    <tr>
        <td><INPUT type="checkbox" name="chk[]" id="chk[]" /></td>
        <td>
            <table>
                <tr>
                    <td><INPUT type="text" style="text-align:right;width:50px;" name="qty[]" id="qty[]" /></td>
                    <td><INPUT type="text" onchange="display_details(this, this.value, 'item')" name="bar[]" id="bar[]" /></td>
                    <td><INPUT type="text" readonly="1" id="item[]" /></td>
                </tr>
                <tr>
                    <td colspan="3" align="left"><div style="border:1px solid #000;width:425px;float:left">asdasdasdasd</div></td>
                </tr>
            </table>
        </td>
    </tr>
</table>

このコードブロックは、関数を呼び出すと表示されるコンテナ内にあります。
そして、これが私のjsコードです:

function display_details(er, bar,ex){  
    var id = $(er).nextAll('input').css('background-color', 'red');
}

上記のコードは機能しません。私もこのコードを試しました:

var id = $(er).css('background-color', 'red');

そして、それは完全にうまく機能します。

これも私が実行しようとしたコードです。

var id = $(er).nextAll('div:first').css('background-color', 'red');
var id = $(er).nextAll('input:first').css('background-color', 'red');
var id = $(er).nextAll('input').first().css('background-color', 'red');
var id = $(er).nextAll('div').first().css('background-color', 'red');

それらのどれも何もしませんでした。

どんな助けでもありがたいです。前もって感謝します。

4

1 に答える 1

2

.nextAll()現在の要素の兄弟に適用されます。入力には兄弟がいないため、何も起こりません。

を使用してツリーを上に移動し.parent()、そこから更新する要素を見つける必要があります。

これは、次の入力に対して機能します。

function display_details(er, bar,ex){  
   var id = $(er).parent().nextAll('td').find('input').css('background-color', 'red');
}

作業例 - http://jsfiddle.net/jMwyG/1/

于 2012-04-19T08:44:21.020 に答える