javascript - jQuery 在 Firefox 上运行不佳,在 Safari 中根本无法运行

标签 javascript jquery jquery-ui firefox safari

我正在使用 jQuery.unique() 来消除 Javascript 数组中的 double 值。在 Chrome 中,它工作得很好,数组的长度从 60 到 29,在 Firefox 中,它做了一些奇怪的事情,因为它从 60 到 43,而在 safari 中,它根本不起作用,有什么提示吗? 这是我使用的进口:

  <title>APS</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <link href="../css/jquery-ui-1.10.4.css" rel="stylesheet">
  <link rel="stylesheet" href="../css/reset.css">
  <link href="http://s3.amazonaws.com/codecademy-content/courses/ltp/css/shift.css" rel="stylesheet">
    <link rel="stylesheet" href="http://s3.amazonaws.com/codecademy-content/courses/ltp/css/bootstrap.css">
  <script src="../js/jquery-1.10.2.js"></script>
  <script src="../js/jquery-ui-1.10.4.js"></script>
  <script src = "../js/search.js"></script>
  <link rel="stylesheet" href="../css/styles.css">
  <script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.18.min.js"></script>

</head>

和js:

$(function() {
        Parse.initialize("T1S9kR0SEibdUjxpyOzaYccrGMVJmwOoaqclBDDO", "IiGFcSejnTIvfhTIEumgElGx9vru9MbdMora8SSZ");
    var query = new Parse.Query("pruebas");
    query.find({
            success: function(objects) {
        var centros=["VILLAVICIOSA", "EL VALLE", "PALOMERA", "ENCINAR", "SAN MATEO"];
        var tipos = ["Esporadico", "Semanal", "Esperando"];
        var nombres=[];
        var pruebas = ["Nacho", "Nacho ", "NACHO", "Nacho"];
        console.log(pruebas.length+pruebas);
        console.log(jQuery.unique(pruebas).length+jQuery.unique(pruebas));
        var emails=[];
        var dias = [];//"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"];
        var dnis=[];
        var i =0;
        objects.forEach(function(obj) {
                nombres[i] = obj.attributes.NOMBRE;
                emails[i] = obj.attributes.MAIL;
                dnis[i] = obj.attributes.DNI;
                dias[i] = obj.attributes.DIA;
                i++;
        });
        console.log("longitud de dias antes: "+dias.length);
        console.log("longitud de dias despues: "+jQuery.unique(dias).length);
        $('#nombres').focus();
        $( "#nombres" ).autocomplete({
            select: function( event, ui ) {console.log(ui.item.value);$('#emails').val('');$('#dnis').val('');
            $('#dias').val('');$('#centros').val('');$('#tipos').val('');},
            source: nombres,
            autoFocus: true
        });
        $( "#dias" ).autocomplete({
            select: function( event, ui ) {
                console.log(ui.item.value);
                console.log(
                objects.filter(function( obj ) {
                return obj.attributes.DIA == ui.item.value;
                }));
                $('#emails').val('');$('#dnis').val('');
            $('#nombres').val('');},
            source: jQuery.unique( dias ),
            autoFocus: true
        });
        $( "#emails" ).autocomplete({
            select: function( event, ui ) {console.log(ui.item.value);$('#centros').val('');$('#nombres').val('');$('#dnis').val('');
        $('#dias').val('');$('#tipos').val('');},
            source: emails,
            autoFocus: true
        });
        $( "#dnis" ).autocomplete({
            select: function( event, ui ) {console.log(ui.item.value);$('#centros').val('');$('#emails').val('');$('#nombres').val('');
        $('#dias').val('');$('#tipos').val('');},
            source: dnis,
            autoFocus: true
        });
        $( "#centros" ).autocomplete({
            select: function( event, ui ) {console.log(ui.item.value);$('#emails').val('');$('#nombres').val('');},
            source: centros,
            autoFocus: true
        });
        $( "#tipos" ).autocomplete({
            select: function( event, ui ) {console.log(ui.item.value);$('#emails').val('');$('#nombres').val('');},
            source: tipos,
            autoFocus: true
        });
            },
            error: function(error) {
                console.log("An error occured :(");
            }

        });

        $('#borrarBusq').click(function(){
            $('#nombres').val('');
            $('#emails').val('');
            $('#dnis').val('');
            $('#dias').val('');
            $('#tipos').val('');
            $('#centros').val('');
        });
    });

谢谢!!

最佳答案

jQuery.unique仅适用于 DOM 元素:

Description: Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers.

您需要实现自己的例程或使用类似 lodash 的内容或underscore

关于javascript - jQuery 在 Firefox 上运行不佳,在 Safari 中根本无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23712462/

相关文章:

javascript - 使用 jQuery 的可拖动 div,如何应用元素的单击偏移量?

javascript - 从 word 粘贴到 extjs 编辑器

Jquery 事件在 ajax/innerHtml 之后不起作用

javascript - 是否有一个多传输记录器在向控制台报告时保留原始文件中的调用位置?

javascript - iPhone IOS 10 Safari JSON 解析 :error unexpected identifier "function"

javascript - 谷歌电子表格 - ajax 调用(获取和发布)

jquery - 在 Accordion 菜单中加载父页面之前不显示子页面

javascript - jQuery UI 可排序连接列表仅垂直溢出

javascript - 在 ASP.NET Web 表单应用程序中使用 jquery 选中复选框时将隐藏字段设置为某个值

javascript - 如何使用 jQuery-UI 拖放两个包含相同 id 元素的 div