标签: getelementsbytagname

JavaScript:循环遍历从getElementsByTagName返回的所有元素

我试图遍历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 arrays foreach getelementsbytagname

52
推荐指数
8
解决办法
6万
查看次数

我可以使用getElementsByTagName选择多个标签吗?

我正在使用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.有没有办法一次选择两个标签?

html javascript getelementsbytagname

51
推荐指数
1
解决办法
3万
查看次数

如何在body标签中insertBefore()元素?

我试图在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

javascript dom insert getelementsbytagname

46
推荐指数
2
解决办法
6万
查看次数

href的Javascript getElement?

我有下面的脚本

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 href getelementsbytagname

37
推荐指数
2
解决办法
8万
查看次数

如何在javascript中获取所有h1,h2,h3等元素?

我想在javascript中写这样的东西:

var all_headings = document.getElementsByTagName("h1,h2,h3,h4,h5,h6");
Run Code Online (Sandbox Code Playgroud)

all_headings然后,它将是所有元素的列表,或者...... h1或者按照它们在文档中出现的顺序,当然.h2h3

我该怎么做?

html javascript getelementsbytagname

23
推荐指数
3
解决办法
4万
查看次数

为什么我不能删除我刚发现的子元素?NOT_FOUND_ERR

我正在构建一个脚本,它必须修补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)

java xml removechild getelementsbytagname

17
推荐指数
2
解决办法
2万
查看次数

Htmlagilitypack中的GetElementsByTagName

如果我不知道它的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

14
推荐指数
3
解决办法
3万
查看次数

javascript TypeError:document.getElementsByTagName("p")[0] .innerHtml不是函数

我在下面的简单函数中遇到以下错误:

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)

谁能告诉我我哪里出错了?

javascript typeerror getelementsbytagname

12
推荐指数
1
解决办法
2万
查看次数

单击另一个元素后,使用vanilla javascript将类添加/删除到其他元素

我已经查看了许多类似的问题,但找不到一个在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">&nbsp;</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

10
推荐指数
2
解决办法
2万
查看次数

GetElementsByTagName不区分大小写?

我正在使用GetElementsByTagName从xml中提取元素.GetElementsByTagName区分大小写 - 如果节点名称为"PARAMS"而不是"Params",则会引发异常.我不想这样,我可以在XMLDocument中使用不同的方式,因此它不会区分大小写吗?

xml xmldocument case-sensitive getelementsbytagname

9
推荐指数
1
解决办法
5171
查看次数