我有以下for循环,当我使用splice()删除一个项目,然后我得到'秒'是未定义的。 我可以检查它是否是未定义的,但我觉得可能有一个更优雅的方法来做到这一点。 希望是简单地删除一个项目,并继续前进。 for (i = 0, len = Auction.auctions.length; i < len; i++) { auction = Auction.auctions[i]; Auction.auctions[i]['seconds'] –; if (auction.seconds < 0) { Auction.auctions.splice(i, 1); } }
只是想问如何创建最简单的倒数计时器。 网站上会有一句话说: “注册在05:00分钟关闭!” 所以,我想要做的是创建一个简单的从“05:00”到“00:00”的js倒数计时器,一旦结束就重置为“05:00”。 我之前正在通过一些答案,但是他们都似乎太强烈(日期对象等),我想要做什么。
什么是最好或最简洁的方法返回一个字符串重复任意次的时间? 以下是我迄今为止的最佳射门: function repeat(s, n){ var a = []; while(a.length < n){ a.push(s); } return a.join(''); }
我试图建立一个指令,负责添加更多的指令 ,它宣布的元素。 例如,我想构建一个指令,负责添加datepicker , datepicker-language和ng-required="true" 。 如果我尝试添加这些属性,然后使用$compile我显然会生成一个无限循环,所以我正在检查是否已经添加了所需的属性: angular.module('app') .directive('superDirective', function ($compile, $injector) { return { restrict: 'A', replace: true, link: function compile(scope, element, attrs) { if (element.attr('datepicker')) { // check return; } element.attr('datepicker', 'someValue'); element.attr('datepicker-language', 'en'); // some more $compile(element)(scope); } }; }); 当然,如果我不$compile元素,属性将被设置,但指令不会被引导。 这种方法是正确的还是我做错了? 有没有更好的方法来实现相同的行为? UDPATE :鉴于$compile是实现这一目的的唯一方法,是否有办法跳过第一次编译传递(该元素可能包含多个子项)? 也许通过设置terminal:true ? 更新2 :我已经尝试把指令放入一个select元素,并且如所期望的那样,编译运行两次,这意味着有两倍的预期option 。
我想调用一些javascript函数坐在一个运行在一个android webview的html页面。 很简单,下面的代码试图做的 – 从android应用程序,调用一个测试消息的javascript函数,inturn调用一个java功能回到android应用程序,通过吐司显示测试消息。 javascript函数如下所示: function testEcho(message){ window.JSInterface.doEchoTest(message); } 从WebView,我已经尝试调用javascript下面的方式没有运气: myWebView.loadUrl("javascript:testEcho(Hello World!)"); mWebView.loadUrl("javascript:(function () { " + "testEcho(Hello World!);" + "})()"); 我没有在WebView上启用javascript myWebView.getSettings().setJavaScriptEnabled(true); // register class containing methods to be exposed to JavaScript myWebView.addJavascriptInterface(myJSInterface, "JSInterface"); 还有Java Class public class JSInterface{ private WebView mAppView; public JSInterface (WebView appView) { this.mAppView = appView; } public void […]
“var”是可选的吗? myObj = 1; 与…一样 ? var myObj = 1; 我发现他们都从我的测试工作,我认为var是可选的。 是对的吗?
当一个contentEditable ='on'<div>重新获得焦点时,我在一个确定的,跨浏览器的解决方案中设置光标/插入符的位置到最后一个已知的位置。 它显示内容可编辑div的默认功能是将光标/光标移动到div中文本的开始处,每次单击它时,这是不可取的。 我相信当他们离开div的焦点时,我将不得不在当前光标位置存储一个变量,然后当它们再次聚焦到内部时重新设置它,但是我没有能够放在一起,或者找不到工作代码示例。 如果有人有任何想法,工作代码片段或样本,我很乐意看到他们。 我还没有任何代码,但这是我所拥有的: <script type="text/javascript"> // jQuery $(document).ready(function() { $('#area').focus(function() { .. } // focus I would imagine I need. } </script> <div id="area" contentEditable="true"></div> PS。 我已经试过这个资源,但它似乎不适用于<div>。 也许只适用于textarea( 如何将光标移动到contenteditable实体的结尾 )
我需要传递和接收两个参数到我想要使用ui-router的ui-sref传输的状态。 就像使用下面的链接,用foo和bar参数将状态转换到home : <a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a> 在控制器中接收foo和bar值: app.controller('SomeController', function($scope, $stateParam) { //.. var foo = $stateParam.foo; //getting fooVal var bar = $stateParam.bar; //getting barVal //.. }); 我在控制器中获取$stateParam undefined 。 有人能帮助我理解如何完成它吗? 编辑: .state('home', { url: '/', views: { '': { templateUrl: 'home.html', controller: 'MainRootCtrl' }, […]
你认为在…和循环中有很大的不同吗? 你喜欢用什么样的“for”,为什么? 假设我们有一个关联数组的数组: var myArray = [{'key': 'value'}, {'key': 'value1'}]; 所以我们可以迭代: for (var i = 0; i < myArray.length; i++) 和: for (var i in myArray) 我没有看到很大的区别。 有没有任何性能问题?
我如何检查一个字符串是否以JavaScript中的特定字符结尾? 例如:我有一个字符串 var str = "mystring#"; 我想知道这个字符串是以#结尾的。 我如何检查它? JavaScript中有一个endsWith()方法吗? 我有一个解决方案是取出字符串的长度,并得到最后一个字符,并检查它。 这是最好的方式,还是有其他的方式?