gpt4 book ai didi

javascript - PrototypeJS 在each() 枚举中输入值

转载 作者:行者123 更新时间:2023-12-02 17:20:44 26 4
gpt4 key购买 nike

当未选中复选框时,为什么下面的 HTML/JS 返回“on”值?此代码(目前)在 tab.my 上有效。 .

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>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);
});
}

我读到this帖子,但我正在尝试学习 JavaScript 性能方面的最佳实践,并获得更基础的知识。我的猜测是,在 select() 方法中使用 $ 实用程序越多,使用 $$ 实用程序越少,它需要循环的次数就越少。下面的函数返回了正确的值,但我需要访问每个“域 div”内的其他元素。

function init() {
$('domains').getElements().each(function(input){
console.log($F(input));
});
}

我想也许我应该使用 $F 实用程序,但下面的函数返回了 JS 错误

Uncaught TypeError: Cannot read property 'toLowerCase' of undefined

function init() {
$('domains').select('div').each(function(domain){
console.log($F(domain.select('input')));
});
}

最佳答案

$F() 方法要求该元素具有 ID,或者已被 Prototype 找到并扩展。这是此构造的一个有用的快捷方式:$(id or reference).getValue();

要完成您在这里所追求的操作,您可以使用“双美元”方法,但是如果您以 id 开头,它将几乎与“通过 ID 查找,查找子项”一样快,没有什么区别"$(id).select() 的方法。

$$('#domains div input').each(function(elm){
console.log($F(elm));
});

第二次尝试失败的原因是您使用的是 select('input'),它总是返回一个数组作为结果。如果您使用 down('input'),则会返回输入本身,这将与 $F() 一起使用。

关于javascript - PrototypeJS 在each() 枚举中输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com