0

我有一个 jQuery UI 滑块。使用此代码一切正常:

形式

<div class="ui-slide" id="test_div" min="1" max="20" inc="1"></div>
<input readonly="readonly" name="padding" id="padding" type="text" value="5" />

这是我用来获取文本字段值的 JavaScript 代码:

JS代码

$('div.ui-slide').each(function(i){

    if( $(this).attr('min') != undefined && $(this).attr('max') != undefined ) {

        $(this).slider( { 
                        min: parseInt($(this).attr('min')), 
                        max: parseInt($(this).attr('max')), 
                        value: parseInt($(this).next("input").val()),
                        step: parseInt($(this).attr('inc')) ,
                        slide: function( event, ui ) {
                            $( this ).next("input").val(ui.value);
                        }
                    });

        $(this).removeAttr('min').removeAttr('max').removeAttr('inc');

    }

});

问题:

我需要将滑块和文本字段都放在一个表格中,特别是每个都有自己的“td”。当我这样做时,我不能再使用上面的 JS 代码检索文本字段的值。

<table><tbody><tr>
<td><div class="ui-slide" id="test_div" min="1" max="20" inc="1"></div></td>
<td><input readonly="readonly" name="padding" id="padding" type="text" value="5" /></td>
</tr></tbody></table>

Chrome 开发工具给了我这个错误。

未捕获的类型错误:无法调用未定义的方法“addClass”

我认为这与这行代码有关:

value: parseInt($(this).next("input").val()),

我不确定如何在下一个“输入”位于表格单元格内时获取它的值。

4

1 回答 1

1

而不是过度使用next()在表格行中找到正确的输入元素:

parseInt($(this).closest("tr").find('input[name="padding"]').val()),

jQuery 文档:

于 2013-10-08T23:27:45.510 回答