Ale*_*lex 1 javascript asp.net jquery
代码优先:
function loopForm() {
var e = document.getElementById("form1").elements;
for (var i = 0; i < e.length; i++) {
alert('this is ' + e[i].ID + ' of type' + e[i].type);
}
Run Code Online (Sandbox Code Playgroud)
我上面的代码位于.js中,该.js是从.aspx中调用的,具有动态创建的控件,如文本框,下拉列表,复选框和标签,位于服务器端,形式为form1。我的问题是
代码获取了所有控件的ID和类型(标签除外),我正在寻找一种处理标签的方法(更改style.display,color等)
我尝试使用JQuery代码,例如:
$("#form1 label").each(function() { //I used "div", "label" and all sort
alert('hi');
});
Run Code Online (Sandbox Code Playgroud)
并且不起作用。请注意,尽管document.getElementById可能起作用,但是页面上存在的控件与以往不同,因此无法对其进行硬编码。
编辑:这是将标签添加到.aspx(在我的代码背后)的方式:
private Label lbl = new Label();
System.Web.UI.HtmlControls.HtmlGenericControl NewDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
NewDiv1.Controls.Add(lbl);
form1.Controls.Add(NewDiv);
Run Code Online (Sandbox Code Playgroud)
在谈论时labels,我怀疑您是在指ASP.NET服务器控件,例如asp:Label。如果真是这样,那么您真的在寻找<span>标签,因为ASP.NET将a <asp:Label>变成了html <span>。
并且,如果您想通过它们的ID引用这些元素,您会注意到ASP.NET在客户端使用的ID与在服务器端定义的ID不同。
但是,有一种解决方法。如果希望客户端ID与服务器ID相同,请在服务器控件上设置以下属性:ClientIdMode="Static".
例如,在您的.aspx页面中,您具有以下内容:
<asp:Label runat="server" Id="lblName"></asp:Label>
Run Code Online (Sandbox Code Playgroud)
它将在html中生成如下内容:
<span id="someservergeneratedid_lblName"></span>
Run Code Online (Sandbox Code Playgroud)
如果要自己控制ID,可以执行以下操作:
<asp:Label runat="server" ID="lblName" ClientIdMode="static"></asp:Label>
Run Code Online (Sandbox Code Playgroud)
这将在html中生成:
<span id="lblName"></span>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |