我正在尝试在<a>
元素中提供文本。我使用innerHTML来检索内部文本,但在少数<a>
个元素中,内部Text被放置在<span>
元素内。
在检索文本值时,我将其作为<span>sample text</span>
作为输出字符串。任何人都可以帮我删除输出字符串中的<span></span>
使用RegEx,这样我的输出字符串中只能有sample text
。
<a href="#"><span>Sample Text</span></a>
注意:我没有在页面中使用任何Javascript库。
答案 0 :(得分:2)
innerText
或textContent
(取决于浏览器)获取没有span标记的元素文本:
var elem = document.getElementsByTagName('a')[0],
text = ('innerText' in elem)? 'innerText' : 'textContent';
var content = elem[text];
答案 1 :(得分:0)
如果你可以包含jQuery,你可以使用 - $("a").text()
而不使用任何正则表达式。
使用纯JavScript -
/* elem you can get in many ways, by id, by tagname or by class etc.
I am using tagName for your specific case
*/
var elem = document.getElementsByTagName('a')[0],
/* use innerText or textContent, whichever is available in browser */
var content = elem.innerText || elem.textContent;
答案 2 :(得分:0)
您可以使用querySelectorAll查找包含<a>
子项的所有<span>
代码,并根据需要获取该文本:
var elems = document.querySelectorAll("a > span");
for(var e in elems) {
var element = elems[e];
var aTag = element.parentNode;
if(aTag.innerText) aTag.innerText = element.innerText;
else aTag.textContent = element.textContent;
}
Here是一个证明上述内容的方法。
为了澄清,document.querySelectorAll
仅在IE8 +(and most other modern browsers)上本机支持,但可以使用polyfill。