我试图遍历getElementsByTagName("input")使用forEach 重新编译的所有元素.任何想法为什么这在FF,Chrome或IE中不起作用?
<html>
<head>
</head>
<body>
<input type="text" value="" />
<input type="text" value="" />
<script>
function ShowResults(value, index, ar) {
alert(index);
}
var input = document.getElementsByTagName("input");
alert(input.length);
input.forEach(ShowResults);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在使用javascript片段,以便我网站的访问者使用以下javascript增加所有段落的字体大小:
function increaseFontSize() {
var paragraphs = document.getElementsByTagName('p');
for(i=0;i<paragraphs.length;i++) {
if(paragraphs[i].style.fontSize) {
var s = parseInt(paragraphs[i].style.fontSize.replace("px",""));
} else {
var s = 14;
}
if(s != max) {
s += 1;
}
paragraphs[i].style.fontSize = s+"px"
}
}
Run Code Online (Sandbox Code Playgroud)
如何在此代码中包含"li",以便"p"和"li"是受影响的选定元素?
我还想避免在我的"li"或"ul"中添加一个类或一个id.有没有办法一次选择两个标签?
我试图在js中使用insertBefore,如下所示:
var p = document.createElement("p");
p.innerHTML = "test1";
document.body.insertBefore(p, null);
var p = document.createElement("p");
p.innerHTML = "test2";
document.body.insertBefore(p, null);
Run Code Online (Sandbox Code Playgroud)
但是这会在body标签关闭之前添加最后一个p元素,我怎么能使用它以便在打开时添加到顶部?所以添加的最后一个元素将是body标签内的第一个元素.
我试过了:
document.body.insertBefore(p, document.getElementsByTagName('body')[0]);
Run Code Online (Sandbox Code Playgroud)
但是萤火虫表明:
找不到节点"代码:"8
我有下面的脚本
var els = document.getElementsByTagName("a");
for(var i = 0, l = els.length; i < l; i++) {
var el = els[i];
el.innerHTML = el.innerHTML.replace(/link1/gi, 'dead link');
}
Run Code Online (Sandbox Code Playgroud)
然而,这会搜索整个页面并花费大约20秒来完成,因为有很多链接.
但是我只需要针对a具有特定目标的那些目标href,例如."http://domain.com/"
理想情况下,我希望能够以类似于jQuery的方式执行此操作,但不使用框架.所以像
var els = document.getElementsByTagName("a[href='http://domain.com']");
Run Code Online (Sandbox Code Playgroud)
我将如何进行此操作,以便仅搜索具有匹配的对象href?
我想在javascript中写这样的东西:
var all_headings = document.getElementsByTagName("h1,h2,h3,h4,h5,h6");
Run Code Online (Sandbox Code Playgroud)
all_headings然后,它将是所有元素的列表,或者...... h1或者按照它们在文档中出现的顺序,当然.h2h3
我该怎么做?
我正在构建一个脚本,它必须修补XML文件,包括用另一个元素替换一个元素列表.以下函数将补丁(包含可能为空的同名元素列表)应用于父元素的同名元素列表(也可能是空列表).(这只是修补逻辑的一小部分).
为什么,当我运行代码时,是否会出现以下错误?
org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
at com.sun.org.apache.xerces.internal.dom.ParentNode.internalRemoveChild(ParentNode.java:503)
at com.sun.org.apache.xerces.internal.dom.ParentNode.removeChild(ParentNode.java:484)
at CombineSweeps$PTReplaceNodeList.apply(CombineSweeps.java:514)
Run Code Online (Sandbox Code Playgroud)
(第514行标记如下.)据我所知,我刚刚验证了元素是否存在(因为NodeList是实时的,它的第一个条目将始终是下一个匹配或null).有趣的是,这并不总是一个问题.
private static class PTReplaceNodeList extends PTBase {
private final String name;
private final String nextElement;
private final List<Node> childList;
...
int apply(Document document, Node parent, Node node_unused) {
NodeList nodes;
// A marker for where to insert our nodes.
// We make a guess using nextElement (if null, means at end).
Node refNode …Run Code Online (Sandbox Code Playgroud) 如果我不知道它的id,如何为文本框选择一个元素?
如果我知道它的id,那么我可以简单地写:
HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);
Run Code Online (Sandbox Code Playgroud)
但是我不知道textbox的ID,我在HtmlagilityPack中找不到GetElementsByTagName方法,它在webbrowser控件中可用.在Web浏览器控件中我可以简单地写:
HtmlElementCollection elements = browser[i].Document.GetElementsByTagName("form");
foreach (HtmlElement currentElement in elements)
{
}
Run Code Online (Sandbox Code Playgroud)
编辑
这是我正在谈论的HTML表单
<form id="searchform" method="get" action="/test.php">
<input name="sometext" type="text">
</form>
Run Code Online (Sandbox Code Playgroud)
请注意我不知道表格的ID.并且在同一页面上可以有多种形式.我唯一知道的是"sometext",我想用这个名字来获取这个元素.所以我想我必须逐个解析所有表格然后找到这个名字"sometext"但是我该怎么做?
c# webbrowser-control getelementsbytagname html-agility-pack
我在下面的简单函数中遇到以下错误:
TypeError: document.getElementsByTagName("p")[0].innerHtml is not a function
Run Code Online (Sandbox Code Playgroud)
我只是想了解getElementsByTagName的用法.
function myFunc(){
document.getElementsByTagName("p")[0].innerHtml("hello my name is vaani");
}
</script>
</head>
<body onload="myFunc();">
<p></p>
<p></p>
<p></p>
</body>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我哪里出错了?
我已经查看了许多类似的问题,但找不到一个在vanilla JS中回答的具体示例如何将类添加到一个不同的元素中并从中删除.我知道它与设置循环和遍历元素有关,但我在确切的过程中迷路了.
我有许多具有类名的元素,faq-container当我点击其中任何一个时,我希望将该类faq-display添加到body标签中.我知道我必须设置一个循环,for (var i = 0; i < elements.length; i++) { elements[i].classList.remove('hover');
}但我不确定在代码中写入它的确切位置以使其工作.我尝试了很多方法,但都失败了.
我当前的脚本如下所示,我只是将数组中的第一个元素作为目标,但我希望能够点击任何faq-container元素并将类名添加到第一个也是唯一的body标记:
document.addEventListener("DOMContentLoaded", function() {
document.getElementsByClassName('faq-container')[0].addEventListener('click', function() {
var faqToggle = document.getElementsByTagName('body')[0];
if (faqToggle.classList.contains('faq-display')) {
faqToggle.classList.remove('faq-display');
// alert("remove faq display!");
} else {
faqToggle.classList.add('faq-display');
// alert("add faq display!");
}
});
});Run Code Online (Sandbox Code Playgroud)
<div class="faq-container cf" id="faq-container">
<h3 <?=ifxless::element( 'name')?>><?=ifxless::fill($this,'name');?> </h3>
<div class="faq-content">
<div class="h_line"> </div>
<div class="faq-bullets" <?=ifxless::element( 'content')?>>
<?=ifxless::fill($this, 'content');?>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
javascript class getelementsbytagname getelementsbyclassname
我正在使用GetElementsByTagName从xml中提取元素.GetElementsByTagName区分大小写 - 如果节点名称为"PARAMS"而不是"Params",则会引发异常.我不想这样,我可以在XMLDocument中使用不同的方式,因此它不会区分大小写吗?
javascript ×7
html ×2
xml ×2
arrays ×1
c# ×1
class ×1
dom ×1
foreach ×1
href ×1
insert ×1
java ×1
removechild ×1
typeerror ×1
xmldocument ×1