如何使用jquery将文本分配给asp标签

时间:2010-09-23 02:15:20

标签: jquery jquery-selectors

我的页面中有一个asp标签。我喜欢用jquery设置一些文本。

<asp:label id="lblError" runat="server" CssClass="error" />

我将使用哪种方法。

$(".error").text('hello'); 
or 
$(".error").html('hello');
or
$(".error").val('hello');

我对这一切感到困惑?请帮助。

2 个答案:

答案 0 :(得分:3)

如果您正在使用母版页或用户控件,其中clientID将与您在.aspx页面中定义的不同,或者另一个元素可能共享同一个类,则另一个选项是:

$("span[id$='lblError']").text('hello');

要具体回答这个问题,尽管已经注明.text()是最合适的选项,因为所有3都可行。从语义上讲,使用.text()插入文本而不是.html()是有意义的,因为您没有插入HTML。

就实际发生的事情而言,现在我会再考虑一下这个问题的另一部分,你可以通过检查jQuery脚本本身来看到这个:

.text()使用传入的字符串调用javascript函数createTextNode并附加到DOM并执行其他操作。 // 12行代码

.html()为清理/处理传入的字符串做了更多处理。还希望有一些代码来防止内存泄漏。还使用浏览器的innerHTML功能。 // 38行代码

关于区分这两者的API文档中.text().html()之间差异的最后一个注释是这一行:

Unlike the .html() method, .text() can be used in both XML and HTML documents.

答案 1 :(得分:2)

我认为在这种情况下最合适的是

$(".error").text('hello');
  • val(string)它应该用于设置输入控件值
  • html(string)应该用于设置内部html内容,而你只是分配纯文本。