我知道它用于使参数成为一个真正的数组,但我不明白使用时会发生什么 Array.prototype.slice.call(arguments)
可能的原因是什么document.getElementById,$("#id")或者任何其他DOM方法/ jQuery选择器没有找到元素?
示例问题包括:
.val(),.html(),.text())返回undefined返回的标准DOM方法null导致以下任何错误:
未捕获的TypeError:无法设置null的属性'...'未捕获的TypeError:无法读取null的属性'...'
最常见的形式是:
未捕获的TypeError:无法设置null的属性'onclick'
未捕获的TypeError:无法读取null的属性"addEventListener"
未捕获的TypeError:无法读取null的属性'style'
我在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) 我想迭代一些DOM元素,我这样做:
document.getElementsByClassName( "myclass" ).forEach( function(element, index, array) {
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误:document.getElementsByClassName("myclass").forEach不是一个函数
我使用的是Firefox 3,所以我知道这两个getElementsByClassName和Array.forEach都存在.这很好用:
[2, 5, 9].forEach( function(element, index, array) {
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
是getElementsByClassName数组的结果?如果没有,那是什么?
我有以下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代码呢?
考虑这个功能:
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)
警告框显示,但显示"未定义".
我尝试了以下代码,但它不起作用.知道我哪里出错了?
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中使用.
.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
我在javascript中经常遇到"Array-Like Object"这个术语.它是什么 ?它和普通阵列有什么区别?什么是类似数组的对象和普通对象之间的区别?
我有一个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()一起使用?
这是我使用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)
谢谢
javascript ×10
html ×5
dom ×3
arrays ×1
codeigniter ×1
css ×1
dojox.gfx ×1
foreach ×1
jquery ×1