这是标准的Jquery自动填充代码。
<script>
$(function() {
var availableTags = [
"JavaScript",
"C#",
"VB.NET",
"ASP.NET"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
假设我能够通过服务器端(ASP.NET / PHP)填充HTML DOM(分隔文本或由table / tr / td构成的网格)。如何通过它“读取”并将其存储在“availableTags []”中以供Jquery Autocomplete使用?
如果我隐藏(显示:无;也许)这个DOM元素,Jquery仍然可以“看到”吗?
答案 0 :(得分:1)
如果您没有直观地呈现数据,我更喜欢隐藏的字段解决方案。如果你隐藏就不需要构建一个表(即使jquery能够使用它,它只是一个视觉隐藏,它仍然在DOM中)。
.map()函数后跟.toArray()生成一个javascript数组:
<table>
<tr><td>Value1</td></tr>
<tr><td>Value2</td></tr>
<tr><td>Value3</td></tr>
<tr><td>Value4</td></tr>
<tr><td>Value5</td></tr>
</table>
var availableTags = $('td').map(function() { return $(this).text(); }).toArray();
或者将分隔文本转换为隐藏字段:
<input type="hidden" id="myhiddenfield" value="value1|value2|value3" />
var availableTags = $('#myhiddenfield').val().split('|');
在此处采取行动:Jsfiddle
答案 1 :(得分:1)
为什么不让服务器端代码直接将数组的javascript声明输出到页面上?这样你就不需要解析它了,你的服务器端代码在任何一个实例中都会有效。