首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个()枚举中的PrototypeJS输入值

每个()枚举中的PrototypeJS输入值
EN

Stack Overflow用户
提问于 2014-06-02 09:08:33
回答 1查看 211关注 0票数 0

为什么下面的HTML/JS在未选中复选框时返回"on“值?这段代码(目前)是在tab.my上运行的。

代码语言:javascript
复制
<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

代码语言:javascript
复制
$('init').observe('click', init);

function init() {
  $('domains').select('div').each(function(domain){
    console.log(domain.select('input')[0].value);
  });
}

我读过的文章,但当涉及到JavaScript性能时,我正在努力学习最佳实践,同时也学到了更多的基本知识。我的猜测是,与select()方法一起使用$实用程序的次数越多,使用$$实用程序的次数越少,它需要循环的次数就越少。下面的函数返回正确的值,但我需要访问每个“域div”中的其他元素。

代码语言:javascript
复制
function init() {
  $('domains').getElements().each(function(input){
    console.log($F(input));
  });
}

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

未定义的TypeError:无法读取未定义的属性“toLowerCase”

代码语言:javascript
复制
function init() {
  $('domains').select('div').each(function(domain){
    console.log($F(domain.select('input')));
  });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 12:28:43

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

要做您想要做的事情,您可以使用“双美元”方法,但是如果以id开头,它将与$( ID ).select()的"find,find子级“方法一样快。

代码语言:javascript
复制
$$('#domains div input').each(function(elm){
  console.log($F(elm));
});

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23990922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档