Javascript 如何更改特殊标记的内容?
我有以下HTML:Javascript 如何更改特殊标记的内容?,javascript,html,Javascript,Html,我有以下HTML: <a class="static selected menu-item" href="/SitePages/Inbox.aspx"><span class="additional-background"><span class="menu-item-text">MyText</span><span class="ms-hidden">Currently selected</span></span&g
<a class="static selected menu-item" href="/SitePages/Inbox.aspx"><span class="additional-background"><span class="menu-item-text">MyText</span><span class="ms-hidden">Currently selected</span></span></a>
我想在此标记中找到特殊文本MyText,然后更改文本
我使用此代码,但不适用于我:
var divArray = document.getElementsByTagName("span");
for (var i = 0; i<divArray.length; i++){
if (divArray[i].class="menu-item-text")
return divArray[i].innerHTML;
}
如何使用JavaScript找到并更改它?这就是您要寻找的吗 JS: HTML: 您可以使用querySelectorAll方法,该方法比getElementsByClassName更受广泛支持,并且可以更准确地定位:
var els = document.querySelectorAll('.menu-item-text');
for (var i=0, iLen=els.length; i<iLen; i++) {
if ( (els[i].textContent || els[i].innerText) == 'Inbox') {
alert('Found inbox');
}
}
你是说你想把收件箱换成别的东西?重新阅读您的问题,查找此标签的收件箱没有意义。另外,你应该展示你想要什么,我想要这个标签的特殊文本。如果你向我们解释你到目前为止尝试了什么,以及你的方法有什么具体问题,这会很有帮助。这使我们可以更轻松地帮助您。我使用document.getelementsbyclassname menu-item-text,但不要为我返回任何元素。@ar.gorgin演示对您有用吗?
<a class="static selected menu-item" href="/SitePages/Inbox.aspx">
<span class="additional-background">
<span class="menu-item-text">Inbox</span>
<span class="ms-hidden">Currently selected</span>
</span>
</a>
var els = document.querySelectorAll('.menu-item-text');
for (var i=0, iLen=els.length; i<iLen; i++) {
if ( (els[i].textContent || els[i].innerText) == 'Inbox') {
alert('Found inbox');
}
}
function getEl(className, text) {
var els, t, re;
var result = [];
// Get elements matching the class
// Try qSA
if (document.querySelectorAll) {
els = document.querySelectorAll('.' + className);
// Try gEBCN
} else if (document.getElementsByClassName) {
els = document.getElementsByClassName(className);
// Try gEBTN
} else if (document.getElementsByTagName) {
t = document.getElementsByTagName('*');
re = new RegExp('(^|\\s)' + className + '(\\s|$)');
els = [];
for (var i=0, iLen=t.length; i<iLen; i++) {
if (re.test(t[i].className)) {
els.push(t[i]);
}
}
// Stop here if everything failed.
} else {
return;
}
// Go looking for element with matching text
for (var j=0, jLen=els.length; j<jLen; j++) {
if ( (els[j].textContent || els[j].innerText) == 'Inbox') {
result.push(els[j]);
}
}
return result;
}