我有一个小块我想转换为使用 jQuery 用于几个不同的目的,但主要是为了逆向工程它如何工作以提高我的 jQuery 技能。我尝试尝试一下,但无法弄清楚所有的转换。
下面的代码Javascript
块遍历在 ASP.NET TreeView 控件客户端呈现的复选框,并扫描带有 a 的复选框className=disabledTreeviewNode
(这种等效功能无法在纯服务器端实现)。
function DisableCheckBoxes(treeviewClientID) {
var treeView = document.getElementById(treeviewClientID);
if (treeView) {
//Get all the checkboxes which are 'inputs' in the treeview
var childCheckBoxes = treeView.getElementsByTagName("input");
//Iterate through the checkboxes and disable any checkbox that has a className="disabledTreeviewNode"
for (var i = 0; i < childCheckBoxes.length; i++) {
var textSpan = childCheckBoxes[i].parentNode.getElementsByTagName("span")[0];
if (textSpan != null && textSpan.firstChild)
if (textSpan.className == "disabledTreeviewNode" || textSpan.firstChild.className == "disabledTreeviewNode")
childCheckBoxes[i].disabled = true;
}
}
}
我尝试更改以下内容:
var treeView = document.getElementById(treeviewClientID);
到
var treeView = $('#' + treeviewClientID);
但是后来我不能再打电话了getElementsByTagName
。我尝试使用 jQuery 等价物,.find
但随后代码开始表现不同,我有点迷茫。
任何人都可以协助将这个小块转换为使用 jQuery 吗?欢迎评论这是否值得,或者即使有更好的方法。
编辑:这class=disabledTreeviewNode
是在服务器端分配的,如下所示:
tn.Text = "<span class=disabledTreeviewNode>" + tn.Text + "</span>";
这有点像 hack/flag,以便客户端代码可以读取它并将它的父级设置为disabled
. 为什么是家长?我无法直接在代码中的复选框上设置类,因为该属性不可访问。hack:将TreeView
对象设置.Text
为具有该<span class=disabledTreeviewNode>
值,然后将其父级(复选框)设置为禁用客户端。