当我收费html时,我需要默认情况下通过选项列表选择所有选项: 这是我在.inc
中的代码的一部分drupal_add_js(
"
var projects='$projectsEncode';
var narrativeList='$narrativeListEncode';
var outputs='$outputsEncode';
var topoNetwork='$topologicalNetworkEncode';
var datasetUuid='$datasetUuid';
var narrativeCount='$narrativeCount';
var footprintNid='$footprintLayersEncode';
",
'inline'
);
这是我的.js代码的一部分
var narratives = JSON.parse(narrativeList);
var narrativeDropdown = $("#narrativeMode");
narratives.forEach(function (narrative) {
narrativeDropdown.append('<option value=' + narrative.nid + '>
Narrativa ' + narrative.name + '</option>');
});
var elements = document.getElementById("narrativeMode").options;
console.log("Elementos cargados:",elements)
for(var i = 0; i < elements.length; i++){
elements[i].selected= true;
}
这是HTML。
<select class="mi-selector custom-select" multiple='multiple' data-style="form-control" data-live-search="true" title="-- Seleccione mínimo 1--" id="narrativeMode">
</select>
感谢您的帮助
答案 0 :(得分:1)
您正在比较值,而不是设置它们:
elements[i].selected == true;
使用:
elements[i].selected = true;
工作示例:
var narrativeDropdown = $("#narrativeMode");
var elements = document.getElementById("narrativeMode").options;
console.log("Elementos cargados:", elements)
for (var i = 0; i < elements.length; i++) {
elements[i].selected = true;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="mi-selector custom-select" multiple='multiple' data-style="form-control" data-live-search="true" title="-- Seleccione mínimo 1--" id="narrativeMode">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
更新
您可以在创建选项元素时将selected
添加到选项元素:
narrativeDropdown.append('<option value=' + narrative.nid + ' selected>
Narrativa ' + narrative.name + '</option>');
});
这样做,您不必再次遍历选项,因此可以删除此循环:
for(var i = 0; i < elements.length; i++){
elements[i].selected= true;
}
答案 1 :(得分:0)
您的代码不起作用,因为您正在比较selected
而不是归因。
更改此:
for(var i = 0; i < elements.length; i++){
elements[i].selected== true; // Note the use of == here
}
对此:
for(var i = 0; i < elements.length; i++){
elements[i].selected = true; // Note the use of single = here
}