Jquery对象不支持属性或方法“值”

时间:2017-06-26 06:37:44

标签: javascript php jquery json

我有jquery函数,它使用json从PHP打印一些文本。它在chrome中运行良好,但我在IE边缘有这个奇怪的错误。 对象不支持属性或方法。

    $(function() {
    $( "#catlist ul" ).sortable({
        placeholder: "ui-state-highlight",
        stop: function( event, ui ) {
            var list = ui.item.parent();
            var sorted = list.sortable( "toArray", { key: "catid[]" } );

            $.post( "catalog_ajax.php", { cmd: "reorder", sorted: sorted}, function( data ) {
                if (data.code=='OK') {

                } else {
                    alert('NOK');
                }
            },'json');

        }

    });
    $( "#catlist ul" ).disableSelection();

    $('.prodcat-remove').on('click', function(e) {
        e.preventDefault();
        var ajaxurl = $(this).data('href');
        if (confirm('Czy na pewno chcesz usunąć?')) {
            $.getJSON(ajaxurl, function (response) {
                if (response.hasOwnProperty('success')) {
                    if (response.success) {
                        $('#catid_'+response.success).remove();
                    } else {
                        alert('Nie udało się usunąć kategorii, spróbuj ponownie później.');
                    }
                } else {
                        if (confirm("Uwaga!\n" + Object.values(response).join("\n"))) {
                            $.getJSON(ajaxurl + '&force=1', function (response) {
                                if (response.hasOwnProperty('success')) {
                                    if (response.success) {
                                        $('#catid_'+response.success).remove();
                                    } else {
                                        alert('Nie udało się usunąć kategorii, spróbuj ponownie później.');
                                    }
                                } else {
                                    alert("Nie można usunąć katalogu\n" + Object.values(response).join("\n"));
                                }
                            });
                        }
                }
            });
        }
    });

它的突破

if(confirm("Uwaga!\n"+Object.values(response).join("\n")))

我不知道这个问题是什么......

2 个答案:

答案 0 :(得分:2)

许多浏览器都不支持

.values - 您可以使用.map来获取所有值的数组:

 var vals = Object.keys(countries).map(function(key) {
        return countries[key];
    });

答案 1 :(得分:2)

阅读Object.values()的文档,您会看到不支持Internet Explorer,但它支持Chrome / Firefox / Edge

相反,您可以使用

Object.keys(response).map(k=>response[k])
从IE9开始支持

Object.keys()