2011-10-07 18 views
1

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をクライアントに表示するにはどうすればよいですか?

これは見事に動作します:暗黙的に指定するしかし、私はそれがあったの代わりに、どの要素IDを知ることができるようにする必要があり、チェックボックスの隣にある特定のテキストを変更する必要があるため

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"; 
         } 
        } 

       } 

var elNode = document.getElementById("TreeView1t10");

質問チェックされたボックスの要素IDを取得するにはどうすればよいですか? jQueryを使って

+1

jQueryを使用することをお勧めします。これは、要素のツリーを簡単にトラバースし、属性/値に簡単にアクセスできるようにします。この特定のハイパーリンクの内部テキストを取得する必要がある場合 - id 'TreeView1t10'でアクセスしてください – sll

+0

私はそれをやりたいと思っています。 –

答えて

1

、それは非常に簡単です...

var oldText = $('.TreeView1_0').text(); 
$('.TreeView1_0').text('new text here'); 

はEDIT:ここ

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

+0

!私はこれをどうやってセットアップするのですか?私はちょうど図書館への参照を作成し、それはthats? –

+0

はい。 jqueryライブラリを追加して、どこでも必要なところでこのコードを呼び出してください。 – ShaneBlake

+0

うん、 '

3

テキストを使用して取得することができます。

var elNode = document.getElementById("TreeView1t10"); 
var sText = elNode.innerText || elNode.innerHTML; 

は、それを変更します使用:

このようなものは、チェックボックスのIDからあなたのツリーノードを取得します、テストされていない、私の頭の上から

チェックボックスあなたのクリックハンドラでツリーノードのIDを取得するには

elNode.innerHTML = "Whatever you want"; 

ID = "TreeView1n10CheckBox"; "CheckBox"を何も置き換えないでください。 "TreeView1n10"があります。次に、 "n"を "t"に置き換えると、対応するアンカータグのIDである である "TreeView1t10"があります。

var sTreeID = TreeNode.id.replace("CheckBox", "").replace("n", "t"); 
var elTreeNode = document.getElementById(sTreeID); 
+0

これを行い、未定義の戻り値var TreeNode = event.srcElement || event.target; if(TreeNode.tagName == "INPUT" && TreeNode.type == "checkbox"){ if(TreeNode.checked){ var elNode = document.getElementById(TreeNode.id); var sText = elNode.innerText || elNode.innerHtml; alert(sText); } } –

+0

私の答えにタイプミスがありました。これは "innerHTML"ではなく "innerHTML"でなければなりません。それを試してください。 – Krumelur

+0

ありがとうございます!!〜はうまくいきます。あなたは私の追加された答えを見てくださいできますか?私はチェックされたチェックボックスのelementidを取得する方法を知りたいと思っています –

1

ツリービューでは、クラスはおそらく複数回使用されているため、特定の要素にアクセスすることが多くなります。

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

すべてのツリーテキストを更新する必要がある場合は、それらをループすることもできます。

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

ansswerにはありがとうございます。私はそれが私はそれを得ることができます私はelementidを知らない場合教えてくださいできますか?私の編集された答えを見てください –

関連する問題