Tag: 数组

重命名Javascript数组中的重复项

我正在寻找一种最有效的方法来重命名(append-1,-2等)一个变量,如果它已经存在于一个字符串中。 所以我保持一个arrays“ dupeCheck = []; 只要我看到一个变量: var UID; 已经在我的dupeCheck数组中,我想立即用-1附加UID的值, 另外,我需要防止第三个重复成为字符串-1-1,而不是字符串-2 .. 我看到了这一点: 将计数附加到javascript字符串数组中的重复之前,但它正是我想要的… 任何聪明的想法? 我更喜欢jQuery .. /编辑: 例如: var dupeUIDCheck = []; $.each(data[IDS].UIDs[keys], function(keys, val) { var currString = val; switch (key) { case “UID”: UID = unquote(currString); //TODO: //Detect if multiple UIDs are loaded from a single source, and //rename them: dupeUIDCheck.push(UID); //Push current […]

jQuery:使用闭包修复点击for循环中的函数绑定

我被困在这里,任何提示都会很好。 我有一个Objects对象[]和一个divnames []数组。 我的对象上有play()和stop()等函数。 对象及其function在多种情况下进行了测试,它们正在运行。 现在我尝试迭代divnames []并将适当对象[]的动作分配给mouseover,mouseout和click。 有一个闭包问题,我修复了一个解决方案,我在StackOverflow上的另一个线程中找到了。 这样可行。 但剩下的问题是鼠标hover等操作不会分配给稍后加载的div。 他们正在处理从一开始就在页面上的对象。 这是我有的: $(function(){ for (var i=0, len=divnames.length; i<len; i++) { if(divnames[i]){ (function( ) { // anonymous function to fix closures var index = i; // also needed to fix closures $('#'+divnames[index]).on("click", function() { objects[index].play(); loadContent(divnames[index]+".php"); }); })( ); // direct function execution to fix closures […]

从jQuery.post AJAX调用返回数据?

嗨,我正在调用此函数: function getCoordenadas() { var coordenadas = new Array(); $.post( ‘baseUrl(‘user/parse-kml’)?>’, { kmlName: “esta_chica.kml”}, function(jsonCoord) { jQuery.each(jsonCoord, function(i, val) { var latlng = val.split(‘,’); coordenadas.push(new google.maps.LatLng(latlng[0], latlng[1])); }); }, ‘json’ ); return coordenadas; } 像这样: $(document).ready(function(){ $(‘.caller’).click(function() { console.log(getCoordenadas()); }); }); 所以当你点击.caller时它会调用函数获取数据正确填充数组,但是console.log(getCoordenadas()); 输出[]。 如果我从函数范围移动数组声明(var coordenadas = new Array();)以使其成为全局,当我第一次单击.caller时,console.log(getCoordenadas()); 输出[],但第二次正确输出数组。 有任何想法吗? 提前致谢

从Array中删除空对象

我有一个填充了对象的JavaScript数组,并希望删除没有数据的每个对象。 它可能看起来像这样: var myArray = [ {id: “28b”, text:”Phill”}, {id: “12c”, text:”Peter”}, {id: “43f”, text:”Ashley”}, {id: “43f”, text:”Ashley”}, {id: “”, text:””}, {id: “9a”, text:”James”}, {id: “”, text:””}, {id: “28b”, text:”Phill”} ]; 我已经使用_.uniq来自underscore.js的_.uniq来删除我的数组中的所有重复项,这很正常。 虽然它们是唯一的,但是当我动态填充数据时,总是会留下一个空对象(因为有空数据集)。 我已经尝试过这里提到的_.without函数: 在Javascript中从数组中删除空元素但它不起作用。 这是我的尝试: myArray = _.without(myArray, {id:””,text:””}); 该数组应如下所示: [ {id: “28b”, text:”Phill”}, {id: “12c”, text:”Peter”}, {id: “43f”, text:”Ashley”}, {id: “9a”, text:”James”}, ]; […]

Javascript – 从动态创建的数组中删除特定元素

我有一个页面,用户可以在其中创建标签(就像在stackoverflow中一样),然后将其发送(POST)到后端以存储在数据库中。 用户可以制作标签,但也可以在最终点击提交之前将其删除。 在DOM中,标签与“x”按钮一起生成。 ‘x’按钮从DOM中删除元素,但是从数组中删除时会出现问题。 我能找到最接近解决方案的是这个问题 ,但是我无法让它为我工作。 这是codepen 这是javascript(我正在使用JQuery) window.tag_array = []; $( “#addtag” ).click(function() { var tag = $(“#input-tag”).val(); //if tag is empty if(!$(‘#input-tag’).val()) { alert(“can’t be empty”); } else { //put tag.val into an array tag_array.push(tag); //add to DOM $( “#tagsbox” ) .append( “”+tag+”x” ); //reset value in text area to null $(“#input-tag”).val(“”); //remove […]

如何使用jQuery检查值是否在数组中

我在检查某个值是否不在数组中时遇到了一些麻烦。 我试图只允许在文本框中按某些按键。 这就是我所拥有的: var keyCodeArr = [ 8,9,13,17,18,37,39,46 ]; $(‘#txtSearch’).keydown(function(event) { var code = event.keyCode; if (!$.inArray(code,keyCodeArr)) { event.preventDefault(); } }); 它允许文本框中的任何内容。 我查看了$ .inArray()的文档,其中显示了一个示例,用于查看值是否在数组中,因此我认为只需在其前面添加NOT即可。 或者是我首先没有正确初始化arrays? 我错过了什么?

Skrollr.js(followup)根据元素的窗口高度和y位置动态设置属性,但属性必须响应特定的序列

如果您通过我的Skrollr.js在这里:当用户滚动窗口问题时, 循环操作将一直发生 ,那么您基本上知道发生了什么。 Skrollr,我正在使用的插件,无法处理无限循环操作。 所以@Prinzhorn提出的建议是使用“模数运算符”。 我试过这个,你可以看到这里 。 然而,这也带来了另一个问题,因为你也可以看到,因为我需要一个事件发生(动画)每第N个像素滚动。 但是卷轴从不会传递每一个数字; 它跳过了很多。 所以,到目前为止,我无法弄清楚如何从那里获得恒定的间隔。 无论如何,这个问题以及这样一个事实:即使他们正在影响的事物不在视口中,也可能总是发生一些动作(或者更确切地说,很多动作)并不是一个好主意。 所以我决定尝试为我的初始Skrollr动态设置data值。 这些数据值将尽我所能,根据窗口高度和内容位置等通过jQuery自行完成等等。所以,很快,我设置了这个小的JS代码(jsFiddle 1) ,它附加了不同的图层可以在需要添加的任何位置进行动画处理,并设置data间隔,这些图层应在视口中处理它们时的操作。 但是,我还没有弄清楚如何根据下面显示的顺序让他们设置CSS值! 但是当你读到这篇文章时我正在研究它! 1 2 3 4 5 请注意,我正在谈论的序列基本上是一层应该显示在另一层之上,从而动画一,二,三,四,五 ……再回到四,三,二,一 ……再来一次等等, 正如我所说,我正在努力,但我已经到了 for (i in intervals) { layer += ‘ data-‘ + (start + intervals[i]) + ‘=” “‘; } 现在我必须弄清楚如何获得一些这些data属性来定位display: block; CSS更改display: block; 和,其他, display: none; 然后,如何使这些非对称,因为他们需要响应上面的来回序列。 更新否1 好的,这就是我现在要做的事情:在这里看到更新的好消息(2) 。 […]

使用PHP和jQuery预加载图像 – 逗号分隔数组?

所以我正在建立一个网站,它将在鼠标hover时使用大量动画GIF。 会有很多图像,我只想加载将在任何给定页面上使用的图像。 它正在使用WordPress,所以我可以使用条件标签只显示我在某个页面上需要的图像的URL。 我的问题是如何告诉浏览器/服务器需要预加载哪些图像。 我决定将HTML5数据属性添加到包含元素。 例如,我会在其中使用这个PHP的DIV: <div id="home-container" class="preload" data-preload="”> 哪个会在PHP中调用此函数: function preloadImages() { global $post; $templateURL = get_template_directory_uri(); $images = array(); if( is_page(‘test’) ) $images[] = “‘”.$templateURL.”/images/gifs-static/button-info-tab-close-off.gif'”; $images[] = “‘”.$templateURL.”/images/gifs-animated/button-info-tab-close.gif'”; } return implode(“, “, $images); } 所以输出将是这样的: 然后我运行这个JavaScript: jQuery(‘.preload’).each(function(){ var images = [ // Comma separated list jQuery(this).data(‘preload’) ]; jQuery(images).each(function() { jQuery(”).attr(‘src’, this).addClass(‘preloaded’).appendTo(‘body’).hide(); }); […]

从JSON创建数组数组

我在ajax调用后接收以下作为response在php json_encode : “[‘2013-02-24’, 0]”, “[‘2013-02-25’, 0]”, “[‘2013-02-26’, 1]”, “[‘2013-02-27’, 6]”, “[‘2013-02-28’, 6]”, “[‘2013-03-01′, 3]”, … 如何从这个数组数组中使用JavaScript? 这有可能吗? 我的意思是,我尝试过使用jQuery makeArray或使用parseJSON没有成功。 什么是最喜欢的方法? 编辑: function submitForm(t) { $.ajax({type:’GET’, url: ‘charts.php’, data:$(page_id).serialize(), success: function(response) { var myFanRemovesData = new Array(response); var myChart = new JSChart(chart_id, ‘line’); myChart.setDataArray(myFanRemovesData); 我必须使用数组数组来设置myFanRemovesData

在jQuery中收集复选框值并在提交时将其POST

我已经提到过这篇文章了: 发布多个复选框值的数组 这个jQuery论坛post: http://forum.jquery.com/topic/checkbox-names-aggregate-as-array-in-a-hidden-input-value 我试图使用jQuery收集隐藏输入字段中的复选框值的数组(或带逗号的连接字符串,无论如何)。 这是我正在使用的脚本代码: $(“#advancedSearchForm”).submit(function() { var form = this; $(form).find(“input[name=specialty]”).val(function() { return $(“input:checkbox”,form).map(function() { return $(this).attr(“name”); }).get().join(); }); }); 相关HTML的片段: <form id="advancedSearchForm" name="advancedSearchForm" method="post" action="”> <input type="checkbox" name="FCM" id="FCM" class="chk" value="FCM" /> 我已经尝试在jQuery中将“submit”更改为“submit3”,这显然会破坏。 当我print_r($ _ POST)时,复选框正确POST,但精简隐藏变量没有。 (它发布,但是一个空值。)复选框使用CI的黑客set_value()函数正确保留(Derek需要在主干中实现这个……但这是另一个故事) 我确信我做的事情是错误的,很容易指出。 在过去的2个小时里,我一直在撞墙,尝试各种function,改变大量的东西,并在Chrome开发工具中分析它(没有显示任何错误)。 感谢帮助。 🙂