在ASP.NET应用程序中,我有一个IreeView。
以下是视图中的一个节点:
<td style="white-space: nowrap;">
<input id="TreeView1n10CheckBox" type="checkbox" checked="checked" name="TreeView1n10CheckBox">
<a id="TreeView1t10" onclick="TreeView_SelectNode(TreeView1_Data, this,'TreeView1t10');" href="javascript:__doPostBack('TreeView1','sPreAnalytical\\Test Requisitions\\2 Specimens: 1 Req')" class="TreeView1_0">2 Specimens: 1 Req</a>
正如您所看到的那样,它是一个复选框,其后面有文字'TreeView1','sPreAnalytical\\Test Requisitions\\2 Specimens: 1 Req'
如何在客户端获取文本2 Specimens: 1 Req'
,如何使用JavaScript修改此文本并将修改后的TreeView显示给客户端?
这很有效:
function check_OnTreeNodeChecked(event) {
var TreeNode = event.srcElement || event.target;
if (TreeNode.tagName == "INPUT" && TreeNode.type == "checkbox") {
if (TreeNode.checked) {
var elNode = document.getElementById("TreeView1t10");
var sText = elNode.innerText || elNode.innerHTML;
alert(sText);
elNode.innerHTML = "Whatever you want";
}
}
}
但是,由于我需要修改复选框旁边的特定文本,我需要知道它是哪个元素ID而不是隐式指定var elNode = document.getElementById("TreeView1t10");
问题如何获取已检查的框的元素ID?
答案 0 :(得分:3)
可以使用以下方法检索文本:
var elNode = document.getElementById("TreeView1t10");
var sText = elNode.innerText || elNode.innerHTML;
使用以下方法修改它:
elNode.innerHTML = "Whatever you want";
要获取点击处理程序中树节点的ID:
从头顶开始,未经测试,类似这样的内容将从复选框ID中获取树节点:
Checkbox ID =“TreeView1n10CheckBox”;用什么都不替换“CheckBox”,所以我们有 “TreeView1n10”。然后用“t”替换“n”,我们有“TreeView1t10”,即 相应锚标记的ID。
var sTreeID = TreeNode.id.replace("CheckBox", "").replace("n", "t");
var elTreeNode = document.getElementById(sTreeID);
答案 1 :(得分:1)
使用jQuery,它非常简单......
var oldText = $('.TreeView1_0').text();
$('.TreeView1_0').text('new text here');
编辑:
答案 2 :(得分:1)
使用树视图可能会多次使用该类,因此访问特定元素会更有用。
var oldText = $('#TreeView1t10').html();
如果您需要更新所有树文本,您也可以非常简单地遍历它们。
$('.TreeView1t10').each(function() {
var oldText = $(this).find('a').html();
});