我有一个数组:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
Run Code Online (Sandbox Code Playgroud)
我无法改变数组的结构.我正在传递id 45
,我想'bar'
在数组中获取该对象.
如何在JavaScript或使用jQuery中执行此操作?
有没有更好的方法将URL的location.search转换为对象?也许只是更有效率或减少?我正在使用jQuery,但纯JS也可以工作.
var query = window.location.search.substring(1), queryPairs = query.split('&'), queryJSON = {};
$.each(queryPairs, function() { queryJSON[this.split('=')[0]] = this.split('=')[1]; });
Run Code Online (Sandbox Code Playgroud) 请有人向我解释这行代码的作用:
var list = calls[ev] || (calls[ev] = {});
Run Code Online (Sandbox Code Playgroud)
我最好的猜测:
它使用calls.xxx的值设置变量"list",其中xxx是变量ev.如果调用[ev]不存在,那么它将其创建为空对象并将该空对象分配给"list".是对的吗?
为什么要使用括号?我在哪里可以找到有关使用||的更多信息 何时设置变量,并在此上下文中使用括号?谢谢!
我有一堆"数字"有多个小数点(所以它们真的是字符串).但是,我想对它们进行排序,好像它们是数字一样.
1.1.1
10.2.3
2.6.7
21.10.4
3.10.12
4.11.5
4.1.16
6.4.23
Run Code Online (Sandbox Code Playgroud)
我希望它们按第一组数字(在第一个小数点之前)排序,然后按第二组排序,然后按第三组排序(可能继续第四组或更多).它们应按此顺序排列:
1.1.1
2.6.7
3.10.12
4.1.16
4.11.5
6.4.23
10.2.3
21.10.4
Run Code Online (Sandbox Code Playgroud)
使用JS执行此操作的最佳方法是什么?我想我可能需要将每个数字分成一个数组,但也许有更好的方法.想法?
我有一个JSON对象数组,如下所示:
var myArray = [
{name:'foo',number:2},
{name:'bar',number:9},
{etc.}
]
Run Code Online (Sandbox Code Playgroud)
如何检测myArray是否包含name ="foo"的对象?
http://code.google.com/apis/libraries/devguide.html声明您需要注册API才能使用CDN.但为什么?你可以清楚地使用它.
不链接到google.com/blah/jquery.js?myAPIcode意味着将下载新版本的jquery.js,而不是使用缓存版本?因此,使用API会降低我的网站速度,而不使用它会加快速度吗?使用API有什么好处吗?或者只是因为如果我们发现您的网站存在问题,Google可以"直接与您联系"AKA跟踪您?
这些天网上有很多关于缩小JavaScript的重要性.速度是最重要的.
但是,缩小是否会违背开源的开放性?
关于JS(与闪存和后端相对)的一个好处是源代码就在那里,可供其他开发人员查看并认为"嘿,看起来不错,我想知道他们是怎么回事做过某事".JS源代码可供所有人查看,因此开发人员可以从中学习,调整它,并在自己的项目中使用类似的JS.
缩小JS会让它变得难以理解.它阻止外部开发人员读取代码,从而取消水平共享和学习.
显然会有一些人希望缩小他们的JS,以达到试图保留他们的知识产权的明确目的.当人们破坏开源社区的创造力时,总是一种耻辱,但这有点可以理解,当然也不会停止.
但对于我们其他开发人员 - 我们生活中每天都使用开源的人 - JS缩小了我们的方式.它使我们无法利用网络的开放性.它关闭了创意共享的可能性.
我是关于一些被缩小的东西 - 库,插件等(也许是在向移动设备提供JS时).但是对于使您的个人网站个性化的定制代码,缩小代码实际上并非必要.它可以节省几毫秒的下载时间,但保持打开状态不会改变那么多.Web上的大多数站点可能只有不到20KB的自定义JS代码,而且缩小它的好处确实很小.做几个ms真的可以比较保持JS代码开放,可读和其他人可用的好处吗?
对于具有更多JS的站点,也许我们可以开始开发基于开源的标准,以便开发人员可以输入稍微不同的URL以便提供未经授权的代码.如果缩小的代码位于domain.com/script.min.js,那么让我们在domain.com/script.js或/script.full.js上始终提供未经授权的代码.或者还有其他建议吗?
我无法在网上找到任何关于这个问题的内容.一切都在另一边 - 推动缩小.这让我感到震惊.这让我觉得,作为开发者,我们已经允许自己陷入毫无疑问的速度意识形态,无论其他因素如何.也许,由于意识形态的本质,你们中的一些人会立即想要解雇它并反对它.但想想更长一点 - 微小的速度效益真的值得失去开源创造力吗?我不相信.
所以我想我的问题是,关于开源JavaScripting的争论在哪里?
我正试图让Twitter Typeahead + Bloodhound与Google的CSE合作.
到目前为止,我已经设法返回结果,但我无法计算出datumTokenizer.
var results = new Bloodhound({
datumTokenizer: function(data) {
return Bloodhound.tokenizers.whitespace(d.value)
},
queryTokenizer: Bloodhound.tokenizers.obj.whitespace,
remote: {
url: "http://clients1.google.com/complete/search?client=partner&hl=en&sugexp=gsnos%2Cn%3D13&gs_rn=25&gs_ri=partner&partnerid=004914516364918182382%3Ayfqw09r4qvu&types=t&ds=cse&cp=3&gs_id=15&q=%QUERY&callback=showResults&duffCallback=?",
ajax: $.ajax({type:'GET',dataType:'jsonp',jsonp:'duffCallback'}),
filter: showResults
}
});
Run Code Online (Sandbox Code Playgroud)
看小提琴:http://jsfiddle.net/thugsb/3KAjh/
你会看到我将showResults()作为一个数组返回结果.但是,从中调用showResults()filter:
似乎没有做任何事情,因为删除该行没有任何效果.所以我不太确定发生了什么.
请注意,duffCallback是我在阅读这个问题时要做的.如果有更好的方法来完成这项工作,我会全都耳朵!
我正在使用这个精彩的插件来捕获移动设备上的擦除事件:http://www.netcu.de/jquery-touchwipe-iphone-ipad-library
我正在使用该页面源代码中的代码来使我的图像库循环应用.但是,我的图库是屏幕的整个宽度.不幸的是,touchwipe似乎阻止了默认的上下擦除在页面上下滚动.有没有办法让它使用默认行为,除非指定了其他行为?
$(document).ready(function() {
$('#imagegallery').cycle({
timeout: 0,
fx: 'scrollHorz',
next: '#next',
prev: '#prev'
});
$("#imagegallery").touchwipe({
wipeLeft: function() {
$("#imagegallery").cycle("next");
},
wipeRight: function() {
$("#imagegallery").cycle("prev");
}
});
});
Run Code Online (Sandbox Code Playgroud)
我也对实现同样效果的其他替代方案持开放态度(其他插件,其他方法).谢谢!
我有一些未知内容作为描述,可能是这样的:
<description>
<p>
<span>
<font>Hello</font>
</span>
World!
<a href="/index">Home</a>
</p>
</description>
Run Code Online (Sandbox Code Playgroud)
可以设想任何HTML标签.我不想要所有的标签.我想要允许的标签是p,i,em,strong,b,ol,ul,li和a.因此,例如,<font>将被剥离,但<p>和<a>将保留.我假设我必须匹配我想要的(并确保没有什么可以匹配其他人),但无法解决如何做到这一点.
有帮助吗?
javascript ×5
jquery ×5
arrays ×2
json ×2
android ×1
api ×1
bloodhound ×1
caching ×1
cdn ×1
fallback ×1
html ×1
iphone ×1
jsonp ×1
minify ×1
object ×1
open-source ×1
search ×1
sorting ×1
tags ×1
touch ×1
touch-event ×1
typeahead.js ×1
variables ×1
xslt ×1