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 回答