Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

4
使用jQuery选择多个类
我的外观很好,似乎无法找出如何在一个jQuery选择器语句中选择与某些类匹配的所有元素,例如: $('.myClass', '.myOtherClass').removeClass('theclass'); 关于如何实现这一目标的任何想法?唯一的其他选择是 $('.myClass').removeClass('theclass'); $('.myOtherClass').removeClass('theclass'); 但是我正在使用很多类来执行此操作,因此需要大量代码。

20
跨浏览器JavaScript(不是jQuery…)滚动到顶部动画
我正在寻找一个简单的跨浏览器“滚动到顶部”动画,可以将其应用于链接。我不想使用JS库,例如jQuery / Moo等。 // jQuery Equivilant to convert to pure JS... $('html, body').animate({scrollTop:0}, 400); 对于那些在进入图书馆之前应该100%学习JS的人来说,这是一个完美的案例。:(
222 javascript 

16
向对象添加元素
我需要填充一个json文件,现在我有了类似的东西: {"element":{"id":10,"quantity":1}} 我需要添加另一个“元素”。我的第一步是使用将该json放入Object类型cart = JSON.parse,现在我需要添加新元素。我以为我必须使用cart.push添加另一个元素,我尝试了这个: var element = {}; element.push({ id: id, quantity: quantity }); cart.push(element); 但是,当我尝试执行操作时element.push,出现错误“对象没有方法推送” ,并且我认为我做错了什么,因为我没有在任何地方告诉“元素”。 我怎样才能做到这一点? 编辑:对不起,我脑子里有些混乱。 我以为从中获取数据时只能获得对象类型JSON.parse,但是首先得到的是JSON中的内容。 用数组代替对象解决了我的问题,我也使用了很多建议,谢谢大家!
222 javascript  object 

13
除非用户向上滚动,否则将溢出div滚动到底部
我有一个只有300像素大的div,我希望它在页面加载时滚动到内容的底部。该div具有动态添加的内容,并且需要一直向下滚动。现在,如果用户决定向上滚动,我不希望它跳回到底部,直到用户再次向下滚动 是否有可能使div保持滚动到底部,除非用户向上滚动,并且当用户滚动回到底部时,即使添加了新的动态内容,它也需要保持在底部。我将如何创建这个。
222 javascript  jquery  html  css  scroll 

13
删除另一个数组中包含的所有元素
我正在寻找一种从javascript数组中删除所有元素(如果它们存在于另一个数组中)的有效方法。 // If I have this array: var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; // and this one: var toRemove = ['b', 'c', 'g']; 我想对myArray进行操作以使其保持这种状态: ['a', 'd', 'e', 'f'] 使用jQuery,我使用grep()和inArray(),效果很好: myArray = $.grep(myArray, function(value) { return $.inArray(value, toRemove) < 0; }); 有没有一种纯Javascript方式无需循环和拼接的方法?
222 javascript  arrays 

20
两个对象之间的一般深度差异
我有两个对象:oldObj和newObj。 输入的数据oldObj用于填充表单,newObj是用户更改此表单中的数据并提交后的结果。 两个物体都很深,即。它们具有对象或对象数组等属性-它们的深度可以为n层,因此diff算法需要递归。 现在我需要不只是从弄清楚什么改变(如添加/更新/删除)oldObj来newObj,却怎么也最能代表它。 到目前为止,我的想法只是建立一个genericDeepDiffBetweenObjects将在表单上返回对象的方法,{add:{...},upd:{...},del:{...}}但随后我想到:之前一定有人需要此方法。 那么...是否有人知道可以做到这一点的库或一段代码,也许有一种更好的方式来表示差异(以仍然可序列化JSON的方式)? 更新: 我想到了一种更好的方式来表示更新的数据,方法是使用与相同的对象结构newObj,但将所有属性值都转换为表单上的对象: {type: '<update|create|delete>', data: <propertyValue>} 所以如果newObj.prop1 = 'new value'和oldObj.prop1 = 'old value'它将设置returnObj.prop1 = {type: 'update', data: 'new value'} 更新2: 当我们进入数组的属性时,它确实变得毛茸茸,因为该数组[1,2,3]应被视为等于[2,3,1],这对于基于值的类型的字符串(如string,int和bool)而言足够简单,但在涉及到引用类型的数组,例如对象和数组。 应该找到相等的示例数组: [1,[{c: 1},2,3],{a:'hey'}] and [{a:'hey'},1,[3,{c: 1},2]] 检查这种类型的深价值平等不仅很复杂,而且还找到了一种表示可能发生的变化的好方法。




8
同步调用异步Javascript函数
首先,这是一个非常特殊的情况,它以错误的方式故意将异步调用改型为一个非常同步的代码库,该代码库长成千上万行,并且当前时间不具备进行更改的能力。对的。” 它伤害了我的每一个生命,但是现实和理想常常并没有融合。我知道这很糟糕。 好的,顺便说一句,我该如何做,这样我可以: function doSomething() { var data; function callBack(d) { data = d; } myAsynchronousCall(param1, callBack); // block here and return data when the callback is finished return data; } 这些示例(或缺少示例)都使用库和/或编译器,这两种库均不适用于该解决方案。我需要一个如何使其冻结的具体示例(例如,在调用回调之前不要离开doSomething函数)而无需冻结UI。如果在JS中有这种可能。

8
jQuery从选择中删除选项
我有一个包含5个选择的页面,所有选择都有一个类名'ct'。我需要在运行onclick事件时从每个选择中删除值为“ X”的选项。我的代码是: $(".ct").each(function() { $(this).find('X').remove(); }); 我要去哪里错了?

7
在JavaScript中模仿集合?
我正在使用JavaScript。我想存储具有以下属性的唯一,无序字符串值的列表: 快速询问“列表中是否有A”的方法? 一种快速的方法(如果列表中存在A,则从列表中删除A) 一种快速的方法“将A添加到列表(如果尚不存在)”。 我真正想要的是一套。有什么建议以最佳方式模仿JavaScript中的集合吗? 这个问题建议使用Object,其键存储属性,并且所有值都设置为true:这是明智的方法吗?
220 javascript 

10
如何在Angular.js中配置不同的环境?
如何管理不同环境的配置变量/常量? 这可能是一个示例: 我的其余API可以访问localhost:7080/myapi/,但在Git版本控制下使用相同代码工作的朋友在Tomcat上已部署了该API localhost:8099/hisapi/。 假设我们有这样的东西: angular .module('app', ['ngResource']) .constant('API_END_POINT','<local_end_point>') .factory('User', function($resource, API_END_POINT) { return $resource(API_END_POINT + 'user'); }); 如何根据环境动态注入API端点的正确值? 在PHP中,我通常使用config.username.xml文件来执行此类操作,将基本​​配置文件(config.xml)与用户名称识别的本地环境配置文件合并。但是我不知道如何在JavaScript中管理这种事情?


24
navigator.geolocation.getCurrentPosition有时有效,有时却无效
因此,我使用了navigator.geolocation.getCurrentPosition jammy,使用了相当简单的JS。 $(document).ready(function(){ $("#business-locate, #people-locate").click(function() { navigator.geolocation.getCurrentPosition(foundLocation, noLocation); }); navigator.geolocation.getCurrentPosition(foundLocation, noLocation); function foundLocation(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; var userLocation = lat + ', ' + lon; $("#business-current-location, #people-current-location").remove(); $("#Near-Me") .watermark("Current Location") .after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />"); $("#people-Near-Me") .watermark("Current Location") .after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.