Javascript 每个()枚举中的PrototypeJS输入值
为什么下面的HTML/JS在未选中复选框时返回“on”值?这段代码(目前)是实时的 HTMLJavascript 每个()枚举中的PrototypeJS输入值,javascript,html,performance,prototypejs,Javascript,Html,Performance,Prototypejs,为什么下面的HTML/JS在未选中复选框时返回“on”值?这段代码(目前)是实时的 HTML <button type="button" id="init" class="btn btn-primary btn-sm">Init</button> <form id="domains"> <div id="domain1"> <input type="checkbox" name="input1" /> <a
<button type="button" id="init" class="btn btn-primary btn-sm">Init</button>
<form id="domains">
<div id="domain1">
<input type="checkbox" name="input1" />
<a>Domain 1</a>
</div>
<div id="domain2">
<input type="checkbox" name="input2" />
<a>Domain 2</a>
</div>
</form>
我读了这篇文章,但我正在努力学习JavaScript性能方面的最佳实践,并从中获得更多的基础知识。我的猜测是,在select()方法中使用$utility的次数越多,使用$$实用程序的次数越少,循环次数就越少。下面的函数返回了正确的值,但我需要访问每个“域div”中的其他元素
我想也许我应该使用$F实用程序,但是下面的函数返回了JS错误
未捕获的TypeError:无法读取未定义的属性“toLowerCase”
$F()方法要求元素具有ID,或者已经被原型找到并扩展。它是此构造的一个有用的快捷方式:$(id或reference).getValue()
要完成这里要做的事情,您可以使用“double dollar”方法,但如果您以一个id开始,它将与$(id)的“按id查找,查找子项”方法一样快。select()
第二次尝试失败的原因是您正在使用select('input'),它总是返回一个数组作为结果。如果使用down('input'),则会返回输入本身,这将与$F()一起使用
$('init').observe('click', init);
function init() {
$('domains').select('div').each(function(domain){
console.log(domain.select('input')[0].value);
});
}
function init() {
$('domains').getElements().each(function(input){
console.log($F(input));
});
}
function init() {
$('domains').select('div').each(function(domain){
console.log($F(domain.select('input')));
});
}
$$('#domains div input').each(function(elm){
console.log($F(elm));
});