[英]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.