我是一位经验丰富的.net开发人员,但对jquery还是陌生的。

我试图通过jQuery填充选择下拉列表

它不是工作的,所以我首先尝试一些基本的东西

<script type="text/javascript">
    $(document).ready(function () {
        $('select[name*="edtPersonID"]').change(function () {
            fillAddresses('[{"Foo": "Bar"}]');
        });
    });
    function fillAddresses(jsRes) {
        alert(jsRes[0].Foo);
    }
</script>


据我所读,“ jsRes”应该以某种方式转换为数组,以便jsRes [0]将返回数组中的第一个对象

但是警报真正带来的只是“未定义”

如果我检查jsRes [0],它等于“ [”,表示它被认为是字符串而不是数组

如何解决?

最终代码可能会使用getJson来访问Web服务中的值,然后id使用一些循环将其添加到select的选项中

非常感谢您的时间和耐心

最佳答案

'[{"Foo": "Bar"}]'定义字符串。要定义数组,请删除引号:[{"Foo": "Bar"}]。就像在C#中一样。

您还可以使用eval在字符串中执行js代码(特别是将json字符串转换为js对象)。 eval('([1, 2])')返回数组[1, 2]
由于您说过打算从Web服务获取此字符串,因此它可能很有用。

About eval

09-26 08:55