无法从后面的代码访问动态创建的html元素

时间:2014-07-08 20:48:34

标签: javascript html asp.net vb.net

我有一个页面上有无序列表。我通过这样的javascript填充列表:

var vidList = document.getElementById("vidList");

var li = document.createElement("li");
li.id = "videoPlayer" + count;
var runat = document.createAttribute("runat");
runat.value = "server";
li.setAttributeNode(runat);
// Here I insert a flash video stream into li
vidlist.appendChild(li);

这可以创建元素并将它们呈现到页面。问题是稍后访问它们。由于它们是视频流,我想在它们不再是有效流时删除它们。在我后面的Visual Basic代码中,我有以下代码:

For videoNumber As Integer = 1 to numVideos
    Dim li = vidList.FindControl("videoPlayer" & videoNumber.toString())
    // Check if the stream is valid and delete it if it isn't
Next

当我调试对FindControl的调用时,返回Nothing。所以我查看了局部变量,发现我的列表有5个元素,所有元素都是Nothing。我查看了this questionthis one,但两者都不能满足我的需求。是否有理由将列表项作为空值进入后面的代码?

1 个答案:

答案 0 :(得分:0)

Request.Form['videoPlayer' + count]

更一般地说,您可以使用Request.Form['clientID']来动态创建控件。