如何在javascript中访问文字控件

时间:2010-02-09 05:03:58

标签: asp.net javascript literals

我在页面上有一个文字控件(上面有一些数据)。我想在javascript中访问它,并希望在其上放置一些文本。请告诉我如何在javascript中访问文字控件。 (我使用的是asp.net)

我在javascript中的代码(但不能正常工作):

 lths = document.getElementById("<%= lblhs.ClientID %>");
 lths.innerHTML = 'this is text line"

4 个答案:

答案 0 :(得分:5)

您可以使用document.getElementById('<%= myControl.ClientID %>')找到它,或者如果您使用的是.NET 4.0,则可以直接将id字段设置为由javascript提取。或者,您可以使用jquery's selectors。您的代码无法正常工作,因为Literal控件不会呈现为元素,只是静态文本。您可以在其周围放置一个范围,或使用Label控件,它可以为您呈现一个范围。

答案 1 :(得分:3)

我不认为您可以从您的javascript客户端代码访问文字控件,因为文字控件只是呈现它的纯值而没有任何周围的标记。所以你真的没有一个你可以通过id得到的元素。

您可以将文字控件更改为标签控件。默认情况下,这会呈现为html span标记。就像那样,你可以在客户端选择它。

另一种选择是在服务器端的文字控件中写一个span或div标签,如下所示:

myLiteral.Text = "<div id=\"myDiv\">Some Text here</div>"

在客户端上,您可以使用:

选择元素
var myDiv = document.getElementById('myDiv');

答案 2 :(得分:1)

只是为了排除显而易见的(因为没有其他人提到它),这是JS中的语法错误:

lths.innerHTML = 'this is text line"

不确定这是否是输入错误,或者您是否从代码中复制了它。您可以使用"',但不能同时使用两者来包围字符串。此外,您应该使用终止分号作为最佳实践(尽管不是必需的)。

lths.innerHTML = 'this is text line';

答案 3 :(得分:0)

使用母版页时,<%= myControl.ClientId %>技术不起作用。情况可能就是这样。 你可以做的是:采取一个隐藏的领域。在隐藏字段中保存标签的ID。访问value属性以获取ID,然后使用document.getElementByID('HiddenField.Value')获取控件。