我有以下代码动态生成 html 列表格式的目录树。当我尝试使用 javascript 操作列表项以在元素末尾添加“+”时,它不起作用。我知道 jquery 是正确的,我在同一台服务器的另一个页面上使用过它。 jquery 不能使用 asp.net 操作服务器端动态生成的数据吗?
<script langauge="C#" runat="server">
string output;
protected void Page_Load(object sender, EventArgs e) {
getDirectoryTree(Request.QueryString["path"]);
itemWrapper.InnerHtml = output;
}
private void getDirectoryTree(string dirPath) {
try {
System.IO.DirectoryInfo rootDirectory = new System.IO.DirectoryInfo(dirPath);
foreach (System.IO.DirectoryInfo subDirectory in rootDirectory.GetDirectories()) {
output = output + "<ul><li>" + subDirectory.Name + "</li>";
getDirectoryTree(subDirectory.FullName);
if (subDirectory.GetFiles().Length != 0) {
output = output + "<ul>";
foreach (System.IO.FileInfo file in subDirectory.GetFiles()) {
output = output + "<li><a href='" + file.FullName + "'>" + file.Name + "</a></li>";
}
}
output = output + "</ul>";
}
} catch (System.UnauthroizedAccessException) {
//This throws when we don't have access, do nothing and move one.
}
}
</script>
然后我尝试使用以下内容操作输出:
<script langauge="javascript">
$('li > ul').not('li > ul > li > ul').prev().append('+');
</script>
仅供引用,div 的代码如下:
<div id="itemWrapper" runat="server">
</div>
最佳答案
您是否尝试过在页面加载后执行您的 JS? 像这样的……
$(function(){
$('li > ul').not('li > ul > li > ul').prev().append('+');
});
关于c# - ASP.NET 生成的输出不受 JQuery/Javascript 的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964452/