我有一个从数据库返回数据的方法,然后以html列表标记的形式创建一个字符串
options.Append("<li value=\"" + reader["CIStatusID"].ToString() + "\"><a href=\"#\" class=\"filterOption checkable\">");
options.Append(reader["Status"].ToString() + "</a></li>");
然后在我的javascript中,我将其分配给名为“filterType”的ul标签
<div id="gearOptionsViewCaseFiles" style="display: none;">
<ul>
<li><a href="#">Filter by Status</a>
<ul id="filterType">
</ul>
</li>
</ul>
</div>
这是我用动态生成的列表项填充我的ul标签的方法:
success: function (data) {
$('#filterType').val('<li value="0" class="filterOption checkable checked"><a href="#">All<img class="checkedimage" src="Images/tick.png" width="12" height="12"></a></li>' + data);
}
在调试器中,“filterType”的值是生成的列表项,但在网站上,列表永远不会出现。我似乎无法弄清楚为什么它没有显示是否将生成的html项目分配给“filterType”ul标签
编辑: 当li项被添加到ul时,它们是什么样的:
<li value="0" class="filterOption checkable checked"><a href="#">All<img class="checkedimage" src="Images/tick.png" width="12" height="12"></a></li>
答案 0 :(得分:4)
$('#filterType').val()
应该是
$('#filterType').html()
.val()
用于表单元素。 ul 不是表单元素..因此.val()
将无效..
使用.html()
var html = '<li value="0" class="filterOption checkable checked"><a '
+ 'href="#">All<img class="checkedimage" src="Images/tick.png" '
+ ' width="12" height="12"></a></li>' + data;
$('#filterType').html(html);
OR
document.getElementById('filterType').innerHTML = html;
答案 1 :(得分:3)
.val
只能用于表单元素AFAIK。请尝试使用.html
,如下所示:
$('#filterType').html('<li value="0" class="filterOption checkable checked"><a href="#">All<img class="checkedimage" src="Images/tick.png" width="12" height="12"></a></li>' + data);
您可以使用.val()
的情况如下:
HTML:
<input type="text" id="textbox" />
jQuery的:
$("#textbox").val("foo"); // Assigns foo to the value of the textbox
基本上,.val()
会向所选元素添加value
属性,这会修改表单元素的值,但不会对其他元素执行任何操作。
NB :.val()
与JavaScript中的.value
不同,因为.val()
也适用于textareas,并自动使用.innerText()
代替。
答案 2 :(得分:3)
请改用.html
。不是.val
.val()
方法主要用于获取/设置表单元素的值,例如input,select和textarea