相关疑难解决方法(0)

将HTMLCollection转换为数组的最有效方法

有没有更有效的方法将HTMLCollection转换为数组,除了迭代所述集合的内容并手动将每个项目推入数组?

javascript arrays object

343
推荐指数
7
解决办法
19万
查看次数

JS:使用Array.forEach迭代getElementsByClassName的结果

我想迭代一些DOM元素,我这样做:

document.getElementsByClassName( "myclass" ).forEach( function(element, index, array) {
  //do stuff
});
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误:document.getElementsByClassName("myclass").forEach不是一个函数

我使用的是Firefox 3,所以我知道这两个getElementsByClassNameArray.forEach都存在.这很好用:

[2, 5, 9].forEach( function(element, index, array) {
  //do stuff
});
Run Code Online (Sandbox Code Playgroud)

getElementsByClassName数组的结果?如果没有,那是什么?

javascript foreach getelementsbyclassname

205
推荐指数
8
解决办法
16万
查看次数

HTMLCollection,NodeLists和对象数组之间的区别

在DOM方面,我一直对HTMLCollections,对象和数组感到困惑.例如...

  1. document.getElementsByTagName("td")和之间有什么区别$("td")
  2. $("#myTable")并且$("td")是对象(jQuery对象).为什么console.log还会在它们旁边显示DOM元素数组,它们不是对象而不是数组?
  3. 什么是难以捉摸的"NodeLists",我如何选择一个?

还请提供以下脚本的任何解释.

谢谢

[123,"abc",321,"cba"]=[123,"abc",321,"cba"]
{123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...}
Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...}
document.links= HTMLCollection[a #, a #]
document.getElementById("myTable")= <table id="myTable">
document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow]
document.getElementsByTagName("td")= HTMLCollection[td, td, td, td]
$("#myTable")= Object[table#myTable]
$("td")= Object[td, td, td, td]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
        <title>Collections?</title>  
        <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
        <script type="text/javascript">
            $(function(){
                console.log('[123,"abc",321,"cba"]=',[123,"abc",321,"cba"]);
                console.log('{123:123,abc:"abc",321:321,cba:"cba"}=',{123:123,abc:"abc",321:321,cba:"cba"});
                console.log('Node=',Node);
                console.log('document.links=',document.links);
                console.log('document.getElementById("myTable")=',document.getElementById("myTable"));
                console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow"))
                console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td"));
                console.log('$("#myTable")=',$("#myTable")); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom

79
推荐指数
4
解决办法
5万
查看次数

javascript getElementsByClassName()总是返回none?

嘿伙计们,我想为我的浏览器创建最简单的书签.

javascript:document.getElementsByClassName('source').style.visibility='visible';
Run Code Online (Sandbox Code Playgroud)

我体内有多个div.source.默认情况下,它们设置为.source { display:none; }css.

我的控制台告诉我: Uncaught TypeError: Cannot set property 'display' of undefined

当我单击书签时,所有.source div应该是可见的.我在这做错了什么?

javascript element selector

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

如何在JS中选择具有类的所有元素

我想用JS修改所有类。有没有办法在不手动设置数组索引的情况下选择它们(例如 [0] 或 [1] 或 [184])?

示例代码:

<div class='message'>something:</div>
<div class='message'>something</div>
Run Code Online (Sandbox Code Playgroud)
const element = document.querySelectorAll(".message");
element.classList.add("color");
Run Code Online (Sandbox Code Playgroud)

它仅在我添加[0]并且仅适用于具有该类的第一个元素时才有效。但我想用类修改所有元素。

html javascript

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

在javascript中传递document.getElementByid中的变量

我有一个变量account_number,其中存储了帐号.现在我想得到id为account_number的元素的值.怎么在javascript中做到这一点?

我尝试做document.getElementById(account_number).value,但它是null.

HTML看起来像这样:

<input class='transparent' disabled type='text' name='113114234567_name' id='113114234567_name' value = 'Neeloy' style='border:0px;height:25px;font-size:16px;line-height:25px;' />
Run Code Online (Sandbox Code Playgroud)

而js是:

function getElement()
{   
 var acc_list = document.forms.editBeneficiary.elements.bene_account_number_edit;

    for(var i=0;i<acc_list.length;i++)
        {
            if(acc_list[i].checked == true)
                {

                    var account_number = acc_list[i].value.toString();
                    var ben_name = account_number + "_name";

                    alert(document.getElementById("'" + ben_name.toString() + "'").value);
                }
         }
Run Code Online (Sandbox Code Playgroud)

}

这里bene_account_number_edit是单选按钮.

谢谢

html javascript

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

使用foreach遍历类元素

我将所有元素从getElementsByClassName存储到变量,我想我可以foreach循环此变量以从中获取每个ID。但是它不起作用。

var el = document.getElementsByClassName("machine_btn_over_layer");
el.forEach(test);
var test = function() {
  console.log("test");
}
Run Code Online (Sandbox Code Playgroud)
<div class="machine_btn_over_layer"></div>
<div class="machine_btn_over_layer"></div>
<div class="machine_btn_over_layer"></div>
<div class="machine_btn_over_layer"></div>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我收到错误消息说功能不起作用

javascript

0
推荐指数
1
解决办法
2219
查看次数