我有一个可能有数千个对象的模型。 我想知道什么是最有效的方式来存储它们,并检索一个对象,一旦我有它的ID。 ID是很长的数字。 所以这是我正在考虑的两个选项。 在选项一中,它是一个带有递增索引的简单数组。 在选项2中,它是一个关联数组,也许是一个对象,如果它有所作为。 我的问题是哪一个更有效率,当我主要需要检索一个单一的对象,但也有时循环和sorting。 // option one: non associative array var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}]; function getObject(id) { for (var i=0; i < a.length; i++) { if (a[i].id = id) return a[i]; } } // option two: associative array var a = []; // maybe {} […]
看来,我只是无法正确理解jQuery触发器('click')函数。 有人可以告诉我为什么这个简单的代码不起作用,如何解决? HTML: <a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a> <span id="foo">Click me!</span> jQuery的: jQuery('#foo').on('click', function(){ jQuery('#bar').trigger('click'); }); 演示: FIDDLE 我想要的是能够点击#foo(这是工作正常),并模拟点击#bar(这是完全忽略没有任何错误消息)。 也尝试了jQuery(document).ready(function(){…})但没有成功。
我知道有很多问题在这里回答https://stackoverflow.com/questions/tagged/youtube+regex ,但不能find类似于我的问题。 任何机构都有JavaScript正则expression式来validation下面列出的YouTubevideourl的行。 只是想知道这样的URL可能在哪里 http://www.youtube.com/watch?v=bQVoAWSP7k4 http://www.youtube.com/watch?v=bQVoAWSP7k4&feature=popular http://www.youtube.com/watch?v=McNqjYiFmyQ&feature=related&bhablah http://youtube.com/watch?v=bQVoAWSP7k4 – 更新1– – 更新2– 这一个工作几乎没有问题,但http://youtube.com/watch?v=bQVoAWSP7k4网站失败 var matches = $('#videoUrl').val().match(/http:\/\/(?:www\.)?youtube.*watch\?v=([a-zA-Z0-9\-_]+)/); if (matches) { alert('valid'); } else { alert('Invalid'); }
我有一个string string = "firstName:name1, lastName:last1"; 现在我需要一个对象obj这样的 obj = {firstName:name1, lastName:last1} 我怎么能在JS中做到这一点?
hash = window.location.hash.substr(1); var reg = new RegExp('^[0-9]$'); console.log(reg.test(hash)); 我在“123”和“123f”都得到了错误。 我想检查散列是否只包含数字。 我错过了什么?
大约一个月前,米特的问题没有得到答复。 可悲的是,我现在正遇到同样的情况。 http://api.jquery.com/change/#comment-133939395 这是情况:我正在使用jQuery来捕获单选button中的更改。 当select单选button时,我启用编辑框。 当单选button被取消select时,我想要编辑框被禁用。 启用作品。 当我在组中select不同的单选button时, change事件不会被触发。 有谁知道如何解决这个问题? <input type="radio" id="r1" name="someRadioGroup"/> <script type="text/javascript"> $("#r1").change(function () { if ($("#r1").attr("checked")) { $('#r1edit:input').removeAttr('disabled'); } else { $('#r1edit:input').attr('disabled', true); } }); </script>
有没有一个好的testing套件或工具集,可以自动化网站导航 – 与JavaScript支持 – 并从网页收集HTML? 当然,我可以用BeautifulSoup刮直HTML。 但是这对我需要使用Javascript的网站没有好处。 🙂
更新:好吧,虽然我没有完全解决这个问题,但我确实找出了一个解决办法,处理我最大的担心…用户体验。 首先,video直到观看者点击播放button之后才开始加载,所以我假定持续时间信息不可用于被拉(我不知道如何解决这个特定的问题…尽pipe我假设这将涉及到从video中分别加载video元数据,但我甚至不知道这是可能的)。 所以为了解决没有持续时间数据的事实,我决定完全隐藏持续时间信息(实际上是整个控制),直到你进行游戏。 我知道…它的作弊。 但现在这让我开心:) 这就是说…如果有人知道如何加载video元数据与video文件分开…请分享。 我认为应该彻底解决这个问题。 我正在build立一个自定义界面的HTML5video播放器,但我有一些问题,获取video持续时间信息显示。 我的HTML是真正简单的(见下文) <video id="video" poster="image.jpg" controls> <source src="video_path.mp4" type="video/mp4" /> <source src="video_path.ogv" type="video/ogg" /> </video> <ul class="controls"> <li class="time"><p><span id="timer">0</span> of <span id="duration">0</span></p></li> </ul> 而我正在使用的JavaScript来获取和插入的持续时间是 var duration = $('#duration').get(0); var vid_duration = Math.round(video.duration); duration.firstChild.nodeValue = vid_duration; 问题没有任何反应。 我知道video文件有持续时间的数据,因为如果我只是使用默认的控件,它显示正常。 但真正奇怪的是,如果我把alert(持续时间)放在我的代码中,像这样 alert(duration); var vid_duration = Math.round(video.duration); duration.firstChild.nodeValue = vid_duration; 然后是正常工作(减去恼人的警报popup)。 […]
我在网上看,但文件很难来。 我们都知道使用浏览器内置的XMLHttpRequest对象的基本AJAX调用(在这里假设一个现代的浏览器): var xmlHttp = new XMLHttpRequest(); // Assumes native object xmlHttp.open("GET", "http://www.example.com", false); xmlHttp.send(""); var statusCode = xmlHttp.status; // Process it, and I'd love to know if the request timed out 那么,有没有一种方法可以通过检查浏览器中的XMLHttpRequest对象来检测到AJAX调用超时? 我会被build议做一些像window.setTimeout(function(){xmlHttp.abort()},30000);? 谢谢! -麦克风
我试图从用户向下滚动到底部(无限滚动)时dynamic生成内容的页面刮取链接。 我试图用Phantomjs做不同的事情,但不能收集第一页以外的链接。 假设加载内容的底部的元素具有类.has-more-items 。 直到最终内容在滚动时才加载,然后在DOM中变为不可用(display:none)。 这是我尝试过的东西 – 在var page = require('webpage').create();后面设置viewportSize到一个很大的高度var page = require('webpage').create(); page.viewportSize = {width:1600,height:10000,}; 在page.open里面使用page.scrollPosition = { top: 10000, left: 0 } ,但是没有效果 – page.open('http://example.com/?q=houston', function(status) { if (status == "success") { page.scrollPosition = { top: 10000, left: 0 }; } }); 也试过把它放在page.evaluate函数里面,但是给出了 参考错误:无法findvariables页面 尝试在page.evaluate和page.open内使用jQuery和JS代码,但page.open $(“html,body”)。animate({scrollTop:$(document).height()},10,function(){//console.log('check for execution');}); 因为它也是在document.ready 。 类似的JS代码 – […]