Tag: JavaScript

数组和对象中的尾随逗号是规范的一部分吗?

JavaScript中的尾随逗号是标准的,还是像Chrome和Firefox这样的大多数浏览器只能容忍它们? 我认为他们是标准的,但IE8呕吐遇到一个当然IE不支持的东西几乎意味着它不是标准的。 下面是我的意思(在books数组的最后一个元素之后)的例子: var viewModel = { books: ko.observableArray([ { title: "..", display: function() { return ".."; } }, { title: "..", display: function() { return ".."; } }, { title: "..", display: function() { return ".."; } }, // <–right there ]), currentTemplate: ko.observable("bookTemplate1"), displayTemplate: function() { return viewModel.currentTemplate(); } };

在JavaScript中,“(function(){})()”和“(function(){}())”功能是否相同?

下面的这两个代码块都会提示foo然后bar 。 唯一的区别是})()和}()) 。 代码1: (function() { bar = 'bar'; alert('foo'); })(); alert(bar); 代码2: (function() { bar = 'bar'; alert('foo'); }()); alert(bar); 除了语法之外,还有什么区别吗?

jQuery如何绑定onclick事件来动态添加HTML元素

我想绑定一个onclick事件到我用jQuery动态插入的元素 但是它从不运行绑定的函数。 如果你能指出为什么这个例子不起作用以及如何让它正常运行,我会很高兴: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da"> <head> <title>test of click binding</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(function(){ close_link = $('<a class="" href="#">Click here to see an alert</a>'); close_link.bind("click", function(){ alert('hello from binded function call'); //do stuff here… }); $('.add_to_this').append(close_link); }); </script> </head> <body> <h1 >Test of […]

使用按位或0来放置一个数字

我的同事偶然发现了一种使用按位或者: var a = 13.6 | 0; //a == 13 我们正在谈论这个问题,想知道几件事情。 它是如何工作的? 我们的理论是使用这样的一个操作符把这个数字转换成一个整数,从而去掉小数部分 与Math.floor相比,它有什么优势吗? 也许这快一点? (双关不打算) 它有什么缺点吗? 也许这在某些情况下不起作用? 明确是一个明显的问题,因为我们必须弄清楚,好吧,我正在写这个问题。 谢谢。

加载本地JSON文件

我试图加载一个本地的JSON文件,但它不会工作。 这是我的JavaScript代码(使用jQuery: var json = $.getJSON("test.json"); var data = eval("(" +json.responseText + ")"); document.write(data["a"]); test.json文件: {"a" : "b", "c" : "d"} 没有任何显示,Firebug告诉我,数据是不确定的。 在Firebug中,我可以看到json.responseText ,它是好的和有效的,但是当我复制该行时,这很奇怪: var data = eval("(" +json.responseText + ")"); 在Firebug的控制台,它的工作原理,我可以访问数据。 任何人都有解决方案?

正则表达式查找包含在两个字符之间的字符串,同时排除分隔符

我需要从字符串中提取一组包含在两个分隔符之间的字符,而不必自己返回分隔符。 一个简单的例子应该有帮助: 目标 :提取方括号之间的子字符串,而不返回括号本身。 基本字符串 : 这是一个测试字符串[或多或少] 如果我使用下面的注册表。 恩。 \ [*?\] 这场比赛是[或多或少] 。 我只需要更多或更少 (没有括号)。 可以做到吗?

JavaScript字符串换行符?

在所有平台的Javascript是\n的通用换行字符序列? 如果不是,我如何确定当前环境的特征? 我不问有关HTML换行元素( <BR/> )。 我正在问JavaScript字符串中使用的换行字符序列。

如何分割一个字符串与多个分隔符在JavaScript中?

如何在JavaScript中使用多个分隔符分割字符串? 我试图分裂在逗号和空格,但是,AFAIK,JS的分裂功能只支持一个分隔符。

var self =这个?

使用实例方法作为事件处理程序的回调函数将其范围从“我的实例”更改为“无论何时只是称为回调” 。 所以我的代码看起来像这样 function MyObject() { this.doSomething = function() { … } var self = this $('#foobar').bind('click', function(){ self.doSomethng() // this.doSomething() would not work here }) } 它的工作原理,但这是最好的办法吗? 我看起来很奇怪

如果内容太宽,则将省略号(…)插入到HTML标记中

我有一个弹性布局的网页,如果浏览器窗口的大小改变了它的宽度。 在这个布局中有头条新闻( h2 )将有一个可变的长度(实际上是从博客的标题,我没有控制权)。 目前 – 如果他们比窗口更宽 – 他们被分成两行。 是否有一个优雅的,经过测试的(跨浏览器)解决方案 – 例如jQuery – 缩短了标题标签的innerHTML,并添加了“…”,如果文本太宽而无法在当前屏幕/容器宽度?