获取节点的文本

时间:2011-10-07 19:01:38

标签: c# javascript asp.net

在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?

3 个答案:

答案 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');

编辑:

示例:http://jsfiddle.net/shaneblake/ZG888/

答案 2 :(得分:1)

使用树视图可能会多次使用该类,因此访问特定元素会更有用。

var oldText = $('#TreeView1t10').html();

如果您需要更新所有树文本,您也可以非常简单地遍历它们。

$('.TreeView1t10').each(function() {
    var oldText = $(this).find('a').html();
});