我有一个javascript代码,其中我使用innerHTML属性访问aspx页面中的div并想要执行以下操作:1)获取该div标签的全部内容。
2)将该div标签的全部内容绑定到变量say res。
3)将res中的值赋给aspx页面中的隐藏控件,最后给出
4)从隐藏字段中渲染该值,并在后面的aspx.cs代码中使用它。
我的aspx页面如下
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type ="text/javascript" language = "javascript">
function inject()
{
var res = document.getElementById('<%= div.ClientID %>').innerHTML.toString();
document.getElementById('hidden1').value = res;
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="BtnAdd" runat="server" Text="Add" onclick="BtnAdd_Click" Width="67px" />
<div id = "div" runat ="server">
</div>
<input type = "hidden" id = "hidden1" value = "" />
<asp:Label ID = "lbl" Text = "Final answer goes here" runat = "server"/>
</asp:Content>
以及后面的代码访问它如下
public partial class _Default : System.Web.UI.Page
{
public string str = "* is the capital of *";
StringBuilder sb = new StringBuilder();
public static int count = 1;
public string res;
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder htm = new StringBuilder();
for (int j = 0; j < str.Length; j++)
{
if (str[j] == '*')
{
string res = "<input type = 'text' id ='" + count + "' value = ''/>";
htm = htm.Append(res);
count++;
}
else
{
htm = htm.Append(str[j]);
}
}
div.InnerHtml = htm.ToString();
}
protected void BtnAdd_Click(object sender, EventArgs e)
{
this.Page.RegisterStartupScript("<Script>", "<Script type='text/javascript'> inject();</Script>");
string res = Request.Form["hidden1"];
lbl.Text = res;
}
}
现在代码正在执行,但是我没有从innerHTML事物中获取整个内容到后面的代码中的res变量。整个内容我指的是标签内的所有内容。我确定我把它搞砸了,或者如果我的错误方法可以被建议更好的方法吗?
感谢您抽出宝贵时间