2011-10-26 16 views
-1

我这样做:使用jQuery/javascript来获取节点文本

if ($(this).prop('checked')) { 
       var checkText = $(this).next('a').text(); 

得到的一个节点的节点文本在我的TreeView

这里是HTML源代码:

<a class="TreeView1_0" href="javascript:__doPostBack('TreeView1','sPreAnalytical\\Labels\\GoodStuff')" onclick="TreeView_SelectNode(TreeView1_Data, this,'TreeView1t2');" id="TreeView1t2">Specimen collection device mislabeled/unlabeled by practice</a> 

jquery的线以上的回报:

Specimen collection device mislabeled/unlabeled by practice 

但是我需要返回:

GoodStuff 

我该怎么做?

请注意,我并不总是有\\Labels\\文本

什么是保持不变的是:href="javascript:__doPostBack('

,如果是简单得多的我甚至高兴回到这个:

javascript:__doPostBack('TreeView1','sPreAnalytical\\Labels\\GoodStuff') 
+0

用'javascript:'和内联事件处理程序退出那些肮脏的黑客行为。 – Raynos

+0

@Raynos这是你的电子邮件吗? [email protected] –

+0

是的,它呢? – Raynos

回答

1

下面的代码或类似的代码如何?

var hrefValue = $(this).next('a').attr('href'); 
    var trimIndex = hrefValue.lastIndexOf('\\') + 1; 
    var checkText = hrefValue.substr(trimIndex, hrefValue.length - 2); 
+0

实际的答案是这样的:var hrefValue = $(this).next('a')。attr('href'); var trimIndex = hrefValue.lastIndexOf('\\')+ 1; var checkValue = hrefValue.substr(trimIndex,hrefValue.indexOf(“')”,trimIndex)-trimIndex);但你的确让我走上了正确的道路 –

1

你将不得不使用jQuery的attr并解析结果。

$(this).next('a').attr('href') 

下面是一个用正则表达式解析它的例子。这个例子没有错误检查,所以你可能想要改进它:

/([^\\']+)'\)$/.exec($(this).next('a').attr('href'))[1]