Tag: JavaScript

validation一个string是一个正整数

我想要最简单的故障安全testing来检查JavaScript中的string是一个正整数。 isNaN(str)对各种非整数值返回true, parseInt(str)返回浮点数字的整数,如“2.5”。 而且我也不想使用一些jQuery插件。

点击button获取表格行的内容

我需要提取表格中每列的细节。 例如,列“名称/编号”。 该表包含许多地址 每行的最后一列有一个button,让用户select列出的地址。 问题:我的代码只拾取第一个具有类nr <td> 。 我如何得到这个工作? 这是jQuery位: $(".use-address").click(function() { var id = $("#choose-address-table").find(".nr:first").text(); $("#resultas").append(id); // Testing: append the contents of the td to a div }); 表: <table id="choose-address-table" class="ui-widget ui-widget-content"> <thead> <tr class="ui-widget-header "> <th>Name/Nr.</th> <th>Street</th> <th>Town</th> <th>Postcode</th> <th>Country</th> <th>Options</th> </tr> </thead> <tbody> <tr> <td class="nr"><span>50</span> </td> <td>Some Street 1</td> <td>Leeds</td> <td>L0 […]

使用jQuery重试失败的AJAX请求的最佳方法是什么?

伪代码: $(document).ajaxError(function(e, xhr, options, error) { xhr.retry() }) 甚至更好的是某种指数后退

我如何获得后退button以使用AngularJS UI路由器状态机?

我已经使用ui-router实现了一个angularjs单页面应用程序。 最初我使用不同的url来识别每个国家,但是这是针对不友好的GUID包装的url。 所以我现在把我的网站定义为一个更简单的状态机器。 这些国家不是由url来标识,而是按照要求简单地转换,如下所示: 定义嵌套状态 angular .module 'app', ['ui.router'] .config ($stateProvider) -> $stateProvider .state 'main', templateUrl: 'main.html' controller: 'mainCtrl' params: ['locationId'] .state 'folder', templateUrl: 'folder.html' parent: 'main' controller: 'folderCtrl' resolve: folder:(apiService) -> apiService.get '#base/folder/#locationId' 过渡到定义的状态 #The ui-sref attrib transitions to the 'folder' state a(ui-sref="folder({locationId:'{{folder.Id}}'})") | {{ folder.Name }} 这个系统工作得很好,我喜欢它干净的语法。 但是,因为我不使用url后退button不起作用。 如何保持我整洁的UI路由器状态机,但启用后退buttonfunction?

$ .when.apply($,someArray)做什么?

我正在阅读关于延期和承诺,并继续来$.when.apply($, someArray) 。 我有点不清楚这到底是什么,寻找一条线正确工作的解释(不是整个代码片段)。 这是一些背景: var data = [1,2,3,4]; // the ids coming back from serviceA var processItemsDeferred = []; for(var i = 0; i < data.length; i++){ processItemsDeferred.push(processItem(data[i])); } $.when.apply($, processItemsDeferred).then(everythingDone); function processItem(data) { var dfd = $.Deferred(); console.log('called processItem'); //in the real world, this would probably make an AJAX call. setTimeout(function() { dfd.resolve() […]

即使存在,也不能访问对象属性。 返回undefined

这让我感到困惑。 我不知道如何解释这个,但这里是我的debugging代码看起来像。 在它下面你可以看到这两个日志的输出。 第一个清楚地显示完整的JS对象与我想要访问的属性,但是下一行代码我无法通过config.col_id_3访问它(请参阅截图中的“undefined”?)。 任何人都可以解释吗? 我可以访问除field_id_4以外的其他任何属性。 console.log(config); console.log(config.col_id_3); 这就是这些console.log()在Console中打印的内容

parsingJSON给“意外的令牌o”错误

我有parsing简单的JSONstring的问题。 我已经检查了他们在JSONLint ,它显示它们是有效的。 但是,当我试图parsing他们使用JSON.parse或jQuery的替代它给了我错误的unexpected token o : <!doctype HTML> <html> <head> </head> <body> <script type="text/javascript"> var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"}; var ques_list = JSON.parse(cur_ques_details); document.write(ques_list['ques_title']); </script> </body> </html> 注意:我在PHP中使用json_encode()编码我的string。

使用Javascript加载图片时,iPad / iPhone浏览器崩溃

我正在尝试在Safari中构build一个模仿iPad照片应用程序的图库。 它完美的工作,除了一旦我加载超过6MB左右的图像或者通过将它们添加到DOM或创build新的图像对象,新的图像要么停止加载或浏览器崩溃。 这个问题已经足够普及了(其他人都碰到同样的限制),我排除了我的Javascript代码作为罪魁祸首。 考虑到您可以在元素或浏览器内的媒体播放器中传输多于几MB的内容,这种限制似乎是不必要的,应该有一些解决方法可用。 也许通过释放内存或其他东西。 我也遇到了这个UIWebView的参考 。 “JavaScript的分配也被限制在10 MB,如果你超过JavaScript的总内存分配限制,Safari会引发exception。 这与我所见相当相符。 是否有可能在Javascript中释放对象,还是Safari / UIWebView保持运行总量,永不放弃? 另外,是否有任何解决方法来加载数据的另一种方式,不吃这个10MB?

JavaScriptcallback范围

我在callback函数中引用我的对象时遇到了一些普通的旧JavaScript(无框架)的麻烦。 function foo(id) { this.dom = document.getElementById(id); this.bar = 5; var self = this; this.dom.addEventListener("click", self.onclick, false); } foo.prototype = { onclick : function() { this.bar = 7; } }; 现在,当我创build一个新的对象(在DOM加载后,用span#test) var x = new foo('test'); onclick函数中的'this'指向了span#test而不是foo对象。 如何在onclick函数中获得对foo对象的引用?

如何通过JavaScript重新触发WebKit CSSanimation?

所以,我有这个-webkit-animation规则: @-webkit-keyframes shake { 0% { left: 0; } 25% { left: 12px; } 50% { left: 0; } 75% { left: -12px; } 100% { left:0; } } 还有一些CSS在我的box上定义了一些animation规则: #box{ -webkit-animation-duration: .02s; -webkit-animation-iteration-count: 10; -webkit-animation-timing-function: linear; } 我可以像这样shake #box : document.getElementById("box").style.webkitAnimationName = "shake"; 但是我以后再也不能动摇了。 这只能震动一次: someElem.onclick = function(){ document.getElementById("box").style.webkitAnimationName = "shake"; } 如何通过JavaScript重新触发CSSanimation而不使用超时或多animation?