我在一个页面上有文字,它在<h3>
标记中,其中有一个类ms-standardheader
,但页面上还有其他文本,其中有相同的类<h3>
标签。我也知道我要隐藏的文字是“会话”。
有了这个怎样才能编写一个javascript函数来隐藏这个文本?
以下是来自IE的开发工具的图片。
答案 0 :(得分:1)
我建议,如果您受限制(如标记所示)非库纯JavaScript,请执行以下操作:
var h3s = document.getElementsByTagName('h3'),
classedH3 = [];
for (var i = 0, len = h3s.length; i < len; i++) {
if (h3s[i].className.indexOf('ms-standardheader') > -1) {
classedH3.push(h3s[i]);
}
}
for (var i = 0, len = classedH3.length; i < len; i++) {
if (classedH3[i].firstChild.nodeValue == 'the text to hide'){
classedH3[i].style.display = 'none';
}
}
参考文献:
答案 1 :(得分:0)
如果你有jquery,你可以输入:
$("h3.ms-standardheader:contains('Session')").hide();
答案 2 :(得分:0)
你不能给目标元素一个ID吗?这将使事情变得更加简单。否则,您必须遍历所有<h3>
元素,直到找到要隐藏的元素:
var headings = document.getElementsByTagName("h3");
for(var i=0; i<headings.length; i++) {
var contentElement = headings[i].getElementsByTagName('nobr');
var content = "";
if(contentElement.length) {
content = contentElement[0].textContent ? contentElement[0].textContent : contentElement[0].innerText;
}
var content = contentElement.length ? contentElement[0].childNodes[0].nodeValue : '';
if(headings[i].className == 'ms-standardheader' && content == 'Session') {
headings[i].style.display = 'none';
}
}
答案 3 :(得分:0)
你应该试试这个:
window.onload = function()
{
getElementByClass('ms-standardheader');
}
window.getElementByClass = function(theClass){
var allHTMLTags=document.getElementsByTagName('*');
for (i=0; i<allHTMLTags.length; i++) {
if (allHTMLTags[i].className==theClass) {
var content = allHTMLTags[i].innerHTML;
var search = /session/;
if (search.test(content))
{
alert(search);
allHTMLTags[i].style.display='none';
}
}
}
}
答案 4 :(得分:0)
在可能的情况下始终支持唯一ID。如果不可能,那么您必须手动遍历DOM以查找您要查找的元素。以下是使用getElementsByTagName()
的示例。
var i, header, headers = document.getElementsByTagName('h3');
for (i = 0; i < headers.length; i += 1) {
header = headers[i];
if (header.className === 'ms-standardheader' &&
(header.textContent || header.innerText) === 'Session') {
header.style.display = 'none';
}
}