相关疑难解决方法(0)

Array.prototype.slice.call()如何工作?

我知道它用于使参数成为一个真正的数组,但我不明白使用时会发生什么 Array.prototype.slice.call(arguments)

javascript prototype-programming

457
推荐指数
7
解决办法
13万
查看次数

为什么jQuery或像getElementById这样的DOM方法找不到元素?

可能的原因是什么document.getElementById,$("#id")或者任何其他DOM方法/ jQuery选择器没有找到元素?

示例问题包括:

  • jQuery默默地无法绑定事件处理程序
  • jQuery的"吸气"方法(.val(),.html(),.text())返回undefined
  • 返回的标准DOM方法null导致以下任何错误:

    未捕获的TypeError:无法设置null的属性'...'未捕获的TypeError:无法读取null的属性'...'

    最常见的形式是:

    未捕获的TypeError:无法设置null的属性'onclick'

    未捕获的TypeError:无法读取null的属性"addEventListener"

    未捕获的TypeError:无法读取null的属性'style'

javascript jquery dom

446
推荐指数
6
解决办法
11万
查看次数

Node对象和Element对象之间的区别?

我在Node对象和Element对象之间完全混淆. document.getElementById()返回document.getElementsByClassName() Node 对象时返回NodeList对象(元素或节点集合?)

如果div是一个Element Object,那么div Node对象呢?

什么是节点对象?

文档对象,Element对象和Text Object也是Node对象吗?

根据David Flanagan的书"文档对象,其元素对象和文本对象都是节点对象".

那么为什么一个对象可以继承Element对象的属性/方法以及Node对象呢?

如果是,我猜Node类和Element Class在继承的原型树中是相关的.

 <div id="test">
           <p class="para"> 123 </p>
           <p class="para"> abc </p>
 </div>
 <p id="id_para"> next </p>

document.documentElement.toString();    // [object HTMLHtmlElement]

var div = document.getElementById("test");
div.toString();                         // [object HTMLDivElement]                       

var p1 = document.getElementById("id_para");
p1.toString();                          // [object HTMLParagraphElement]

var p2 = document.getElementsByClassName("para");
p2.toString();                          //[object HTMLCollection]
Run Code Online (Sandbox Code Playgroud)

html javascript dom

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

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万
查看次数

删除div中的所有子DOM元素

我有以下dojo代码在div下创建表面图形元素:

....
<script type=text/javascript>
....
   function drawRec(){
      var node = dojo.byId("surface");
      //   remove all the children graphics
      var surface = dojox.gfx.createSurface(node, 600, 600);

      surface.createLine({
         x1 : 0,
         y1 : 0,
         x2 : 600,
         y2 : 600
      }).setStroke("black");
   }
....
</script>
....
<body>
<div id="surface"></div>
....
Run Code Online (Sandbox Code Playgroud)

drawRec()将第一次绘制矩形图形.如果我在锚点href中再次调用此函数,如下所示:

 <a href="javascript:drawRec();">...</a>
Run Code Online (Sandbox Code Playgroud)

它会再次绘制另一个图形.我需要清理div下的所有图形,然后再次创建.如何添加一些dojo代码呢?

javascript dojox.gfx

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

JavaScript按名称获取元素

考虑这个功能:

function validate()
{
  var acc = document.getElementsByName('acc').value;
  var pass = document.getElementsByName('pass').value;

  alert (acc);
}
Run Code Online (Sandbox Code Playgroud)

这个HTML部分:

<table border="0" cellpadding="2" cellspacing="0" valign="top">
    <tr>
        <td class="td1">Account</td>
        <td class="td2"><input type="text" name="acc" /></td>
    </tr>
    <tr class="td1">
        <td>Password</td>
        <td class="td2"><input type="password" name="pass" /></td>
    </tr>
</table>
<div><button onClick="validate()" class="cupid-greenx">Login now</button></div>
Run Code Online (Sandbox Code Playgroud)

警告框显示,但显示"未定义".

html javascript dom

120
推荐指数
6
解决办法
37万
查看次数

在纯Javascript中按类隐藏元素

我尝试了以下代码,但它不起作用.知道我哪里出错了?

document.getElementsByClassName('appBanner').style.visibility='hidden';
Run Code Online (Sandbox Code Playgroud)
<div class="appBanner">appbanner</div>
Run Code Online (Sandbox Code Playgroud)

使用jQuery或更改HTML是不可能的,因为我[self->webView stringByEvaluatingJavaScriptFromString:@""];在Objective-C中使用.

html javascript

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

如何在Javascript中获取CSS类属性?

.test {
    width:80px;
    height:50px;
    background-color:#808080;
    margin:20px;
}
Run Code Online (Sandbox Code Playgroud)

HTML -

<div class="test">Click Here</div>
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,我希望得到 margin:20px

html javascript css

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

javascript - Array和类似Array的对象之间的区别

我在javascript中经常遇到"Array-Like Object"这个术语.它是什么 ?它和普通阵列有什么区别?什么是类似数组的对象和普通对象之间的区别?

javascript arrays

26
推荐指数
2
解决办法
8984
查看次数

getElementsByName()不起作用?

我有一个Javascript函数,它应该更新我的表单中的隐藏输入字段,其中的数字在每次调用函数时递增.

它最初使用getElementById(),但是因为我必须重新设计我的表单,我不能使用php函数为元素分配一个单独的ID,所以我拥有的是该元素的唯一名称.

所以我决定使用Javascript中的getElementsByName()来修改元素.

这是该元素的HTML

  <input type="hidden" value="" name="staff_counter">
Run Code Online (Sandbox Code Playgroud)

这是我的Javascript代码:

window.onload=function()
{

//function is activated by a form button 

var staffbox = document.getElementsByName('staff_counter');
                    staffbox.value = s;


                s++;
}
Run Code Online (Sandbox Code Playgroud)

当调用函数并且输入字段没有获得赋值时,我在Firebug上没有错误.

它正在使用getElementById(),但为什么突然间它不能与getElementsByName()一起使用?

  • - 我已经检查过它是文档中唯一的唯一元素.
  • - 我在激活功能时检查了Firebug上的任何错误

这是我使用Codeigniter制作元素的代码

// staff_counter is name and the set_value function sets the value from what is
//posted so if the validation fails and the page is reloaded the form element does
// not lose its value

echo form_hidden('staff_counter', set_value('staff_counter'));
Run Code Online (Sandbox Code Playgroud)

谢谢

html javascript codeigniter getelementsbyname

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