0

我有一个从数据库返回数据的方法,然后以 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>
4

3 回答 3

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;
于 2012-12-12T21:34:15.480 回答
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属性添加到选定元素,这将修改表单元素的值,但对其他元素不做任何事情。

注意.val().valueJavaScript 不同,它也.val()适用于 textareas,.innerText()而是自动使用。

于 2012-12-12T21:34:16.320 回答
3

改为使用.html。不是.val

.val()方法主要用于获取/设置输入、选择和文本区域等表单元素的值

于 2012-12-12T21:34:33.180 回答