由于,似乎是使用 INNERHTML 的错误,其中我的 SELECT OPTION 标记变为空白(基于我已经能够做的研究) - 我不得不尝试弄清楚如何为以后创建一个变量根据以下返回的 JSON 数据使用包含我的 OPTION 标签,并且没有任何乐趣;
[
{"saying":"Select a saying..."},
{"saying":"I rock the camera!"},
{"saying":"Ask me about Holland"},
{"saying":"I'm with the Photographer!"},
{"saying":"I'd love to frame you!"}
]
下面是我的两个核心函数(函数 loadlist 和函数 ()),后者是启用选择标签的填充并将参数传递给第一个然后从 mysql DB 获取数据的核心函数。{注意:选择标签适用于我今天拥有的代码,如果仅在 html 文件的正文中,它仅在 INNERHTML 中并使用 document.getElementById 失败。
我在 IE、FireFox、Safari 和 Chrome 上试过这个。我为什么要这样做?我正在努力创建一个模式弹出窗口,其中包含许多 T 恤的可选选项,并基于这些选项指导您选择说法等。如果 INNERHTML 可以工作,我会完成,因为它按预期更改了 DIV除了我的 SELECT 标签。
工作代码:......
<div id='target' class="target">
<p>in the div</p>
<p><select id="say1" name="say1" onchange="custom(this.id)" size="1"></select></p>
</div>
…………
不工作代码:......
{
div = document.getElementById('target');
str = '<select id="say1" name="say1" onchange="custom(this.id)" size="1"></select>';
div.innerHTML = str;
}
.....................
/*function to load a list*/
function loadlist(selobj,url,nameattr)
{
$(selobj).empty();
$.getJSON(url,{ data: 123, t: (new Date()).getTime() },function(data) {
$.each(data, function(i,obj)
{
$(selobj).append(
$('<option></option>')
.val(obj[nameattr])
.html(obj[nameattr]));
});
});
}
$(function()
{
//By default, jQuery will load from cache if the request is same
loadlist($('select#colour').get(0), 'getcolours.php?getlist=colour','colour');
loadlist($('select#saying').get(0), 'getsaying.php?getlist=adultsaying','saying');
loadlist($('select#say1').get(0), 'getsaying.php?getlist=adultsaying','saying');
});
社区有什么帮助是向我展示我在 loadlist 函数中的哪个位置编写了将 JSON 数据返回到以后可以使用的变量的能力,理想情况下添加打开和关闭 OPTION 标记?
我对其中的一些有点陌生,这些概念正在逃避我,因为我必须完成这个项目,在此先感谢。