Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在从PHP数组填充的JQuery HTML选择列表上设置SELECTED属性_Javascript_Php_Jquery_Html_Arrays - Fatal编程技术网

Javascript 在从PHP数组填充的JQuery HTML选择列表上设置SELECTED属性

Javascript 在从PHP数组填充的JQuery HTML选择列表上设置SELECTED属性,javascript,php,jquery,html,arrays,Javascript,Php,Jquery,Html,Arrays,我正在运行数组中的项目列表。通过JQuery将这些选项输出到html SELECT 我想将数组中的当前项与以前选择的变量进行比较,并将属性设置为selected 但它无法添加属性 我做错了什么 //PHP //一些HTML表单 JQuery 所选属性是的一部分,而不是其本身。您应该将代码修改为: function update_animal_options(optionsArray) { $(animals_select).empty(); $(animals_select).

我正在运行数组中的项目列表。通过JQuery将这些选项输出到html SELECT

我想将数组中的当前项与以前选择的变量进行比较,并将属性设置为selected

但它无法添加属性

我做错了什么

//PHP

//一些HTML表单

JQuery

所选属性是的一部分,而不是其本身。您应该将代码修改为:

function update_animal_options(optionsArray) {
    $(animals_select).empty();

    $(animals_select).append(
        '<option value=' + optionsArray[i] 
        + (optionsArray[i] == current_selected? ' selected' : '') + '>' 
        + optionsArray[i] + '</option>'
    );
}

此外,最好将属性值用引号括起来。否则,code like value=此处的某些值将不会像您预期的那样处理。

您可以将$anists\u select更改为$anists\u select,使其更像jquery。然后去掉这个let syntax.user$anivers\u select.prop'selected',true;我没有想过使用内联if来添加select!非常感谢。
<script type="text/javascript">

        $(document).ready(function () {

            let animal_array = <?php echo json_encode($myAnimalArray); ?>;
            let animals_select = document.getElementById("animals_select");
            let current_selected = "<?php echo $s_current_selected; ?>";


            update_animal_options(animal_array);


            function update_animal_options(optionsArray) {

                $(animals_select).empty(); //remove any prior entries

                for (let i = 0; i < optionsArray.length; i++) {
                    $(animals_select).append('<option value=' + optionsArray[i] + '>' + optionsArray[i] + '</option>');

// HERE IS WHERE MY PROBLEM IS

                    if (optionsArray[i] == current_selected) {
                        $(animals_select).attr('selected', 'selected');
                    }

                }
            }

        });
</script>
function update_animal_options(optionsArray) {
    $(animals_select).empty();

    $(animals_select).append(
        '<option value=' + optionsArray[i] 
        + (optionsArray[i] == current_selected? ' selected' : '') + '>' 
        + optionsArray[i] + '</option>'
    );
}