访问元素
问题描述:
我使用了一下MooTools的来访问一个HTML选择元素的值,但事情是这样用MooTools的做[.getSelected()返回一个数组,我不不知道如何处理它。访问元素
我的代码:因为一些选择元素允许选择多个
<script type="text/javascript">
window.addEvent('domready', function(){
$('votconj').addEvent('click', function() {
// This works great
$('jj_conjoint').addClass("validate['required']");
$('mm_conjoint').addClass("validate['required']");
$('aaaa_conjoint').addClass("validate['required']");
$('conjoint_regime').addClass("validate['required']");
new FormCheck('form');
});
if ($('nb_children').getSelected() == 1){
// this doesn't work because .getSelected() returns an array and never equals 1
$('jj_enfant1').addClass("validate['required']");
$('mm_enfant1').addClass("validate['required']");
$('aaaa_enfant1').addClass("validate['required']");
new FormCheck('form');
}
if ($('nb_children').getSelected() == 2){
// this doesn't work because .getSelected() returns an array and never equals 2
$('jj_enfant2').addClass("validate['required']");
$('mm_enfant2').addClass("validate['required']");
$('aaaa_enfant2').addClass("validate['required']");
new FormCheck('form');
}
new FormCheck('form');
});
</script>
答
您可以使用.each
遍历MooTools的数组:
var selected = $('nb_children').getSelected();
selected.each(function(element) {
var val = element.get('value');
$('jj_enfant' + val).addClass("validate['required']");
//etc
}
new FormCheck('form');
欲了解更多信息:http://mootools.net/docs/core/Types/Array#Array:each
为什么getSelected()
返回数组在所有的原因次,是否像这样的代码总是可以重用,当你决定添加多个可选项目,而不是一个。
编辑
注意的是,上述代码被直接写入。可能需要进行一些调整才能使其适合您的情况。
编辑2
更新代码,以更全面的例子。
答
getSelected()
返回一个数组。如果你没有,你可以只尝试$('nb_children').getSelected()[0]
。要获得价值,您可以使用$('nb_children').getSelected()[0].get("value")
。
答
您要检查所选项目的价值,对不对?
尝试:
if ($('nb_children').getSelected().get('value') == 1){//...
+0
感谢您的回答,但它不起作用。我更新了我的帖子,将我的代码更全面的部分。 – Bruno
谢谢您的回答,但它不工作。我更新了我的帖子,将我的代码更全面的部分。 – Bruno
@布鲁诺看到我更新的答案。 – jtbandes