小编nic*_*ckf的帖子

循环内的JavaScript闭包 - 简单实用的例子

var funcs = [];
// let's create 3 functions
for (var i = 0; i < 3; i++) {
  // and store them in funcs
  funcs[i] = function() {
    // each should log its value.
    console.log("My value: " + i);
  };
}
for (var j = 0; j < 3; j++) {
  // and now let's run each one to see
  funcs[j]();
}
Run Code Online (Sandbox Code Playgroud)

它输出这个:

我的价值:3
我的价值:3
我的价值:3

而我希望它输出:

我的价值:0
我的价值:1
我的价值:2


使用事件侦听器导致运行函数的延迟时,会出现同样的问题:

var buttons = document.getElementsByTagName("button");
// let's create 3 …
Run Code Online (Sandbox Code Playgroud)

javascript closures loops

2689
推荐指数
25
解决办法
34万
查看次数

在JavaScript中编码URL?

如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?

var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;
Run Code Online (Sandbox Code Playgroud)

我假设你需要myUrl在第二行编码变量?

javascript url encoding

2392
推荐指数
14
解决办法
145万
查看次数

如何在JavaScript正则表达式中访问匹配的组?

我想使用正则表达式匹配字符串的一部分,然后访问该带括号的子字符串:

var myString = "something format_abc"; // I want "abc"

var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr);     // Prints: [" format_abc", "abc"] .. so far so good.
console.log(arr[1]);  // Prints: undefined  (???)
console.log(arr[0]);  // Prints: format_undefined (!!!)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?


我发现有什么不对上述正则表达式代码:实际的字符串,我反对是这样的测试:

"date format_%A"
Run Code Online (Sandbox Code Playgroud)

报告"%A"未定义似乎是一种非常奇怪的行为,但它与此问题没有直接关系,所以我开了一个新的,为什么匹配的子字符串在JavaScript中返回"undefined"?.


问题是console.log它的参数就像一个printf语句,因为我正在记录的字符串("%A")有一个特殊的值,它试图找到下一个参数的值.

javascript regex

1277
推荐指数
14
解决办法
72万
查看次数

使用CSS内容添加HTML实体

你如何使用CSS content属性添加html实体?

使用这样的东西只是打印&nbsp;到屏幕而不是不间断的空间:

.breadcrumbs a:before {
    content: '&nbsp;';
}
Run Code Online (Sandbox Code Playgroud)

html css html-entities css-content

970
推荐指数
7
解决办法
42万
查看次数

PHP等式(== double equals)和identity(=== triple equals)比较运算符有何不同?

==和之间有什么区别===

  • 松散的==比较究竟是如何运作的?
  • 严格的===比较究竟是如何运作的?

什么是有用的例子?

php comparison equality operators identity-operator

483
推荐指数
9
解决办法
29万
查看次数

使用CSS从右侧偏移背景图像

有没有办法将背景图像从其元素的右侧定位一定数量的像素?

例如,要从左侧定位一定数量的像素(例如10),我就是这样做的:

#myElement {
    background-position: 10px 0;
}
Run Code Online (Sandbox Code Playgroud)

css

438
推荐指数
9
解决办法
30万
查看次数

在DB中存储图像 - 是还是不?

所以我正在使用一个将图像存储在数据库中的应用程序.你对此有何看法?我更像是一种在文件系统中存储位置的类型,而不是直接将它存储在数据库中.

您认为利弊是什么?

database theory storage blob image

415
推荐指数
25
解决办法
59万
查看次数

禁用HTML5表单元素的验证

在我的表单中,我想使用新的HTML5表单类型,例如<input type="url" />(有关这里类型的更多信息).

The problem is that Chrome wants to be super helpful and validate these elements for me, except that it sucks at it. If it fails the built-in validation, there's no message or indication other than the element getting focus. I prefill URL elements with "http://", and so my own custom validation just treats those values as empty strings, however Chrome rejects that. If I could change its validation rules, that would work …

forms validation html5 input

411
推荐指数
8
解决办法
28万
查看次数

如何为某些HTML标记存储任意数据

我正在制作一个由javascript提供一些交互的页面.仅作为示例:发送AJAX请求以获取文章内容然后在div中显示该数据的链接.显然在这个例子中,我需要每个链接来存储额外的信息:文章的ID.我一直在处理它的方式是将这些信息放在href链接中:

<a class="article" href="#5">
Run Code Online (Sandbox Code Playgroud)

然后我使用jQuery来查找a.article元素并附加相应的事件处理程序.(不要太在意这里的可用性或语义,这只是一个例子)

无论如何,这种方法有效,但它有点味道,根本不可扩展(如果click函数有多个参数会发生什么?如果其中一些参数是可选的,会怎样?)

显而易见的答案是在元素上使用属性.我的意思是,这就是他们的目的,对吗?(的种类).

<a articleid="5" href="link/for/non-js-users.html">
Run Code Online (Sandbox Code Playgroud)

我最近的一个问题中,我问这个方法是否有效,结果是没有定义我自己的DTD(我没有),那么不,它是无效的或可靠的.一个常见的反应是将数据放入class属性中(虽然这可能是因为我选择不当的例子),但对我而言,这更令人闻趣.是的,它在技术上是有效的,但它不是一个很好的解决方案.

我过去使用的另一种方法是实际生成一些JS并将其插入到<script>标记的页面中,创建一个与该对象关联的结构.

var myData = {
    link0 : {
        articleId : 5,
        target : '#showMessage'
        // etc...
    },
    link1 : {
        articleId : 13
    }
};

<a href="..." id="link0">
Run Code Online (Sandbox Code Playgroud)

但这可能是维持对接的真正痛苦,而且通常只是非常混乱.

那么,为了解决这个问题,你如何为HTML标签存储任意信息

html javascript

329
推荐指数
8
解决办法
21万
查看次数

如何在LaTeX中更改文档字体?

如何将整个文档的字体更改为sans-serif(或其他任何内容)?

latex

279
推荐指数
4
解决办法
33万
查看次数