Tag: JavaScript

在循环中使用对象

为什么不可以使用循环中的对象? 或者这是一个浏览器错误? 这段代码在Chrome 42中不起作用,说undefined不是一个函数: test = { first: "one"} for(var item of test) { console.log(item) }

Internet Explorer 11检测

我知道IE 11具有不同于所有其他IE的用户代理string Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko 我试图检测IE 11与此问题指定的答案' jquery未能检测到IE 11 那是!!navigator.userAgent.match(/Trident\/7\./) 但是我得到的错误Object not found and needs to be re-evaluated. 然后我在IE11中打开开发者控制台,并试图访问一些预定义的JavaScript对象,我仍然得到相同的错误。 我努力了 navigator.userAgent window.navigator console.log('test'); 任何人有任何想法呢?

如何在jQuery中select一系列元素

<div id="myDiv"> <a>…</a> <a>…</a> <a>…</a> <a>…</a> <a>…</a> <a>…</a> </div> 如果你想在上面的例子中select第二,第三和第四a标签,你会怎么做? 我能想到的唯一的事情是: $("#myDiv a:eq(1), #myDiv a:eq(2), #myDiv a:eq(3)") 但是,这看起来不是很有效率或漂亮。 我想你也可以select所有的a ,然后运行,但是如果还有更多a话,那么效率可能会非常低下。

JavaScript – 如何获取被调用脚本的URL?

我将myscript.js包含在文件http://site1.com/index.html如下所示: <script src=http://site2.com/myscript.js></script> 在“myscript.js”里面,我想要访问URL“ http://site2.com/myscript.js ”。 我想要这样的东西: function getScriptURL() { // something here return s } alert(getScriptURL()); 如果从上面提到的index.html调用,会提醒“ http://site2.com/myscript.js ”。

带有classList的代码在IE中不起作用?

我正在使用下面的代码,但在IE中失败。 消息是: 无法获取“添加”属性的值:对象为空或未定义“ 我认为这只是一个IE支持问题。 你将如何在IE中使下面的代码工作? 有任何想法吗? var img = new Image(); img.src = '/image/file.png'; img.title = 'this is a title'; img.classList.add("profilePic"); var div = document.createElement("div"); div.classList.add("picWindow"); div.appendChild(img); content.appendChild(div);

获取数据属性

在我的HTML我有一个span元素: <span class="field" data-fullText="This is a span element">This is a</span> 我想获得data-fullText属性。 我尝试了这两种方式,但他们没有工作(都返回undefined ): $('.field').hover(function () { console.log('using prop(): ' + $(this).prop('data-fullText')); console.log('using data(): ' + $(this).data('fullText')); }); 然后我search,发现这些问题: 如何获得data-id属性? 和jquery不能获得数据属性值 。 两者的答案是"Use .attr('data-sth') or .data('sth')" 。 我知道.attr()已被弃用(在我使用的jQuery-1.11.0),但是,我试过了。 它工作! 有人能解释为什么吗?

Javascript从stringdynamic调用对象方法

我可以dynamic调用具有方法名称的对象方法作为string吗? 我会想像这样: var FooClass = function() { this.smile = function() {}; } var method = "smile"; var foo = new FooClass(); // I want to run smile on the foo instance. foo.{mysterious code}(); // being executed as foo.smile();

哪个更好:<script type =“text / javascript”> … </ script>或<script> … </ script>

哪个更好或更方便使用: <script type="text/javascript">…</script> 要么 <script>…</script>

在几秒钟内获得两个date之间的时间差

我试图在几秒钟内得到两个date之间的差异。 逻辑会是这样的: 设定一个现在的初始date; 设置一个最后的date,这将是最初的date再加上一些秒数(比如说15) 得到这两者之间的差异(秒数) 之所以我这样做,是因为最后的date/时间取决于其他variables,而且从来不相同(这取决于用户做了些什么),而且还存储了其他事物的初始date。 我一直在尝试这样的事情: var _initial = new Date(), _initial = _initial.setDate(_initial.getDate()), _final = new Date(_initial); _final = _final.setDate(_final.getDate() + 15 / 1000 * 60); var dif = Math.round((_final – _initial) / (1000 * 60)); 事情是,我从来没有得到正确的区别。 我试图用24 * 60除以秒数,但我从来没有把握。 那么我的逻辑有什么问题呢? 我可能会犯一些愚蠢的错误,因为时间已经太晚了,但是让我感到困扰的是我无法完成这项工作:)

JavaScript .replace只replace第一个Match

var textTitle = "this is a test" var result = textTitle.replace(' ', '%20'); 但replace函数停止在“”的第一个实例,我得到了 结果: "this%20is a test" 任何想法在哪里我错了我确定它是一个简单的修复。