2011-06-19 51 views
1
<span id="myId" class="myClass">Sample text</span>

我想通过使用文本值来获得在HTML页面中的特定字符串的ID或类,在这种情况下“示例文本”的包装的ID或类。有没有办法做到这一点?如何得到一个字符串

+0

什么是包装?你在寻找DOM中的父元素吗? – binfalse

回答

2

使用jQuery,这是非常简单的:

var searchText = 'Sample text', 
    $element = $('span:contains(' + searchText ')'), 
    id = $element.attr('id'), 
    className = $element.attr('class'); 

这不是严格香草JS如此简洁。

var spans = document.getElementsByTagName('span'), 
    element, 
    text, 
    re = /Sample Text/, 
    // IE doesn't support textContent, FF doesn't support innerText 
    prop = document.body.innerText ? 'innerText' : 'textContent'; 

for (var i=0; i<spans.length; i++) 
{ 
    if (re.test(spans[i][prop])) 
    { 
     span = spans[i]; 
     break; 
    } 
} 

var id, className; 
if (span) 
{ 
    id = span.id; 
    className = span.className; 
} 
+0

不错的答案,但是,我希望那些会在非jQuery答案上花费额外时间的人。为什么?因为这是可能的。 –

+0

应该是class className – locrizak

+0

@Caspar已经添加了。 –