Tag: JavaScript

在JavaScript中,是否从switch语句返回被认为比使用break更好的做法?

选项1 – 使用返回开关: function myFunction(opt) { switch (opt) { case 1: return "One"; case 2: return "Two"; case 3: return "Three"; default: return ""; } } 选项2 – 使用中断切换: function myFunction(opt) { var retVal = ""; switch (opt) { case 1: retVal = "One"; break; case 2: retVal = "Two"; break; case 3: retVal = […]

使用javascript / jQuery获取data- *属性列表

给定一个具有零个或多个data-*属性的任意HTML元素,如何检索数据的键值对列表。 例如给出这个: <div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div> 我想能够以编程方式检索这个: { "id":10, "cat":"toy", "cid":42 } 使用jQuery(v1.4.3),使用$.data()访问数据的各个位是简单的,如果密钥是事先知道的,但不清楚如何用任意数据集这样做。 我正在寻找一个“简单的”jQuery解决scheme(如果存在的话),但不会介意较低级别的方法。 我试图parsing$('#prod').attributes但是我缺lessjavascript-fu让我失望。 更新 customdata做我需要的。 然而,包括一个jQuery插件只是为了其function的一小部分,似乎是一个矫枉过正。 目光的源头帮助我修复了自己的代码(并改进了我的javascript-fu)。 这是我提出的解决scheme: function getDataAttributes(node) { var d = {}, re_dataAttr = /^data\-(.+)$/; $.each(node.get(0).attributes, function(index, attr) { if (re_dataAttr.test(attr.nodeName)) { var key = attr.nodeName.match(re_dataAttr)[1]; d[key] = attr.nodeValue; } }); return d; } 更新2 正如在接受的答案中所表明的那样,解决scheme对于jQuery(> = 1.4.4)来说是微不足道的。 $('#prod').data()将返回所需的数据字典。

jQuery vs document.querySelectorAll

我多次听说jQuery最强大的资产是它在DOM中查询和操作元素的方式:您可以使用CSS查询来创build复杂的查询,这在常规javascript中很难做到。 不过,据我所知,可以通过document.querySelector或document.querySelectorAll获得与Internet Explorer 8及更高版本支持的结果相同的结果。 所以问题是这样的:为什么“风险”的jQuery的开销,如果其最强大的资产可以用纯JavaScript实现? 我知道jQuery不仅仅是CSSselect器,例如跨浏览器AJAX,很好的事件附加等等。但是它的查询部分是jQuery实力的一个非常重要的部分! 有什么想法吗?

如何使用JavaScript重新加载ReCaptcha?

我有一个AJAXregistry单,以便在发生错误时(即用户名已被使用),我想刷新Recaptcha图像。 我正在寻找与ReCaptcha兼容的代码来使用JavaScript重新加载它。

什么“./”(点斜线)是指HTML文件path位置?

我知道../意味着走上一条路,但究竟是什么意思? 我最近正在通过一个教程,它似乎只是指一个文件在同一个位置,所以有必要呢? 如果只是这样做,我可以不使用它吗?

将HTMLstring转换为DOM元素?

有没有一种方法来转换HTML: <div> <a href="#"></a> <span></span> </div> 或任何其他的HTMLstring到DOM元素? (所以我可以使用appendChild())。 我知道我可以做.innerHTML和.innerText,但这不是我想要的 – 我从字面上想要将dynamicHTMLstring转换为DOM元素,以便我可以将它传递给.appendChild()。 更新:似乎有混乱。 我有一个string中的HTML内容,作为JavaScript中的一个variables的值。 文档中没有HTML内容。

如何分开捆绑供应商脚本,并根据需要使用Webpack?

我试图做一些我认为应该可能的事情,但是我真的不明白如何从webpack文档(在我看来这是一个解密和理解的地狱)中做到这一点。 我正在编写一个JavaScript库,其中有几个模块可能不相互依赖。 最重要的是,jQuery被所有模块使用,其中一些可能需要jQuery插件。 这个图书馆将被用于几个不同的网站,这可能需要一些或所有的模块。 定义我的模块之间的依赖关系非常简单,但是定义他们的第三方依赖关系似乎比我想象的要困难得多。 我想达到什么目的 :对于每个网站,我想有两个捆绑文件,其中一个具有必要的第三方依赖关系,另一个具有来自我的库的必要模块。 示例 :让我们想象一下,我的库有以下模块: 一个(需要:jquery,jquery.plugin1) b(需要:jquery,a) c(需要:jquery,jquery.ui,a,b) d(需要:jquery,jquery.plugin2,a) 我有一个网站(见它作为一个独特的入口文件),需要模块a,b和c。 这种情况下的Webpack应该生成以下文件: 供应商捆绑 :与jquery,jquery.plugin1和jquery.ui; 网站包 :模块a,b和c; 最后,我宁愿将jQuery作为一个全局的,所以我不需要在每个单独的文件(例如,我可能只需要在主文件,例如)要求它。 而且jQuery插件只会扩展$ global,以防需要它们(如果其他模块不需要这些模块,则不会有问题)。 假设这是可能的,这种情况下的webpackconfiguration文件的例子是什么? 我在configuration文件上尝试了几个加载器,外部和插件的组合,但是我并没有真正明白他们在做什么,应该使用哪些。 谢谢!

node.js同步执行系统命令

我需要在node.js函数中 result = execSync('node -v'); 这将同步执行给定的命令行,并返回所有由该命令文本标准输出。 PS。 同步是错误的。 我知道。 仅供个人使用。 UPDATE 现在我们有mgutz的解决scheme,它给了我们退出代码,但不是标准输出! 还在等待更精确的答案。 UPDATE mgutz更新了他的答案,解决scheme在这里:) 另外,正如dgo.a所提到的,有独立的模块exec-sync 更新2014-07-30 ShellJS lib到达。 考虑这是现在最好的select。 更新2015-02-10 最后! execSync 0.12本地支持execSync 。 查看官方文档

在Flux架构中,您如何pipe理商店生命周期?

我在阅读Flux,但Todo应用程序的例子太简单了,以至于我不能理解一些关键点。 想像一下像Facebook这样的单页面应用程序,它具有用户个人资料页面 。 在每个用户个人资料页面上,我们要显示一些用户信息和他们最后的post,无限滚动。 我们可以从一个用户configuration文件导航到另一个。 在Flux体系结构中,这与商店和调度程序如何对应? 我们会为每个用户使用一个PostStore ,还是我们会有某种全球性的商店? 调度员怎么样,我们会为每个“用户页面”创build一个新的Dispatcher,还是我们会使用一个单独的? 最后,体系结构的哪一部分负责pipe理“特定于页面”商店的生命周期以响应路由变化? 而且,一个伪页面可能有几个相同types的数据列表。 例如,在个人资料页面上,我想显示“ 追随者”和“ 追随者” 。 单身UserStore如何在这种情况下工作? UserPageStorepipe理UserPageStore followedBy: UserStore和follows: UserStore ?

为什么在JavaScript中为“块”范围的variables声明select了“let”?

我明白为什么var需要这个名字 – 它是可变的, const – 它是一个常量,但let的名字后面的含义是什么? 随它去?