jQuery .val()工作,但内容不显示

时间:2012-12-12 21:32:19

标签: javascript jquery asp.net

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

3 个答案:

答案 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