繁体   English   中英

jQuery .html()不起作用

[英]jquery .html() doesnt work

我正在使用jquery .html()通过调用REST url动态附加一些标签,但是它不起作用。

<div style="display: none;" id="tables">
    <form:select id="table" name="table" path="table">      
        <form:option value="">Choose</form:option>
        <div id="tables-select">
        <!-- The available tables for update will be added here -->
        </div>
    </form:select>  
    <script type="text/javascript">
        function getTables(type) {
            $.getJSON('/web/tables/db/' + type,
            {
                ajax : 'true'
            },function(data) {
            html ='';
            var len = data.length;
            for ( var i=0; i<len; i++) {
               html += '<option value="'+data[i]+'" >'+data[i]+'</option>';
            }
            $('#tables-select').html(html);
            });
        }
    </script>
</div>

我看到REST调用正在进行中,但是没有任何反应。 调试并放置断点后,我看到Java脚本从第10行直接跳转到Java脚本函数的末尾(第20行)。

知道这里发生了什么吗? 我的页面中有一堆相同的功能,而所有这些功能都可以期待这一功能。

编辑:

这就是我调用该函数的方式

<script type="text/javascript">
    $(document).ready(function(){
        $("#type").live('change', function(){
            var type = $(this).val();
            getSites(type);
            getTabless(type);
        });
    });
</script>

就目前而言,这段代码是错误的: getTables()缺少一个缺少的括号。 另外,我假设您在某个地方实际调用了 getTables()代码,否则该代码除了声明一个函数外什么也不做。

调试时, $.getJSON调用确实会快速执行。 AJAX的全部目的是它是异步的 因此,调试器将跳过$.getJSON调用而不进入回调,因为回调是在以后的时间调用的。 如果将断点放在回调中,则应触发该断点。

整个<DIV>具有display:none的样式。 除非您在某个地方调用$('#tables').show()或进行其他操作使其可见,否则除非在DOM中或通过诸如firebug之类的工具,否则结果将永远不可见。

同样,您不能将<DIV>标记放在<SELECT>标记内。 tables-select元素使用<OPTGROUP>标记,或替换<SELECT>元素的全部内容,包括初始的“选择”选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM