为什么下面的HTML/JS在未选中复选框时返回"on“值?这段代码(目前)是在tab.my上运行的。
<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>JS
$('init').observe('click', init);
function init() {
$('domains').select('div').each(function(domain){
console.log(domain.select('input')[0].value);
});
}我读过这的文章,但当涉及到JavaScript性能时,我正在努力学习最佳实践,同时也学到了更多的基本知识。我的猜测是,与select()方法一起使用$实用程序的次数越多,使用$$实用程序的次数越少,它需要循环的次数就越少。下面的函数返回正确的值,但我需要访问每个“域div”中的其他元素。
function init() {
$('domains').getElements().each(function(input){
console.log($F(input));
});
}我想也许我应该使用$F实用程序,但是下面的函数返回了JS错误
未定义的TypeError:无法读取未定义的属性“toLowerCase”
function init() {
$('domains').select('div').each(function(domain){
console.log($F(domain.select('input')));
});
}发布于 2014-06-02 12:28:43
$F()方法要求元素要么具有ID,要么已经被Prototype找到并扩展。这是这个构造的一个有用的快捷方式:$(id或引用).getValue();
要做您想要做的事情,您可以使用“双美元”方法,但是如果以id开头,它将与$( ID ).select()的"find,find子级“方法一样快。
$$('#domains div input').each(function(elm){
console.log($F(elm));
});第二次尝试失败的原因是使用select('input'),它总是返回数组作为其结果。如果您使用down(' input '),那将返回输入本身,这将与$F()一起工作。
https://stackoverflow.com/questions/23990922
复制相似问题