小编And*_*y E的帖子

使用点表示法字符串访问对象子属性

我暂时坚持看似简单的JavaScript问题,但也许我只是错过了正确的搜索关键字!

假设我们有一个对象

var r = { a:1, b: {b1:11, b2: 99}};
Run Code Online (Sandbox Code Playgroud)

有几种方法可以访问99:

r.b.b2
r['b']['b2']
Run Code Online (Sandbox Code Playgroud)

我想要的是能够定义一个字符串

var s = "b.b2";
Run Code Online (Sandbox Code Playgroud)

然后使用访问99

r.s or r[s] //(which of course won't work)
Run Code Online (Sandbox Code Playgroud)

一种方法是为它编写一个函数,在字符串上拆分字符串,也可以递归/迭代地获取属性.但是有更简单/更有效的方法吗?在这里的任何jQuery API中有用吗?

javascript jquery

102
推荐指数
7
解决办法
5万
查看次数

如果HTML解析不使用正则表达式,它们如何工作?

我每天都会看到问题,询问如何从某些HTML字符串中解析或提取某些内容,第一个答案/注释始终是"不要使用RegEx解析HTML,以免感到愤怒!" (有时省略最后一部分).

这对我来说相当混乱,我一直认为,解析任何复杂字符串的最佳方法是使用正则表达式.那么HTML解析器如何工作呢?它不使用正则表达式来解析.

使用正则表达式的一个特殊参数是,并不总是有一种解析替代方法(例如JavaScript,其中DOMDocument不是普遍可用的选项).例如,jQuery似乎可以使用正则表达式将HTML字符串转换为DOM节点.

不知道是否CW这个,这是一个真正的问题,我想要回答,而不是真正想成为一个讨论主题.

html regex parsing html-parsing

96
推荐指数
4
解决办法
5997
查看次数

如何在不导致页面滚动的情况下删除位置哈希?

是否有可能删除哈希window.location而不会导致页面跳转到顶部?我需要能够修改哈希而不会引起任何跳转.

我有这个:

$('<a href="#123">').text('link').click(function(e) {
  e.preventDefault();
  window.location.hash = this.hash;
}).appendTo('body');

$('<a href="#">').text('unlink').click(function(e) {
  e.preventDefault();
  window.location.hash = '';
}).appendTo('body');
Run Code Online (Sandbox Code Playgroud)

在这里查看实例:http://jsbin.com/asobi

当用户单击" 链接 "时,修改的哈希标记没有任何页面跳转,因此工作正常.

但是当用户点击" 取消链接 "时,删除了has标记,页面滚动跳转到顶部.我需要删除没有这种副作用的哈希.

javascript jquery fragment-identifier

76
推荐指数
3
解决办法
8万
查看次数

如何比较HH:MM:SS格式的两个时间字符串?

我有两个HH:MM:SS格式的时间字符串.例如,str1contains 10:20:45, str2contains 5:10:10.

如何比较上述值?

javascript

71
推荐指数
6
解决办法
13万
查看次数

将图像加载到<输入文件>中的<img>

我正在尝试加载用户通过元素选择的图像.

我在输入元素中添加了一个onchange事件处理程序,如下所示:

<input type="file" name="picField" id="picField" size="24" onchange="preview_2(this);" alt=""/>
Run Code Online (Sandbox Code Playgroud)

而preview_2函数是:

var outImage ="imagenFondo";
function preview_2(what){
    globalPic = new Image();
    globalPic.onload = function() {
        document.getElementById(outImage).src = globalPic.src;
    }
    globalPic.src=what.value;
}
Run Code Online (Sandbox Code Playgroud)

其中outImage具有我想要加载新图片的标签的id值.

但是,似乎onload永远不会发生,并且它不会向html加载任何内容.

我该怎么办?

html javascript

70
推荐指数
5
解决办法
13万
查看次数

是否有在线RegexBuddy式正则表达式分析器?

我正在寻找一个在线实用程序,它会美化并向正则表达式添加解释性注释.有人存在吗?

regex

55
推荐指数
4
解决办法
3万
查看次数

查找输入元素的"类型"

我希望能够使用javascript在页面上找到某种类型的东西.问题如下:我需要检查特定区域是否是复选框/单选按钮/或文本字段.

如果它是一个复选框或单选按钮,它没有长度(没有字符串),否则如果它是一个文本字段我需要检查它是否包含字符.页面是动态创建的,因此有时可能会在文本字段中显示复选框.

所以我的想法是找到输入的类型,然后确定要做什么.

任何建议,将不胜感激.

提前致谢.

javascript

47
推荐指数
3
解决办法
11万
查看次数

.htc和.js文件有什么区别?

.htc和.js文件有什么区别?我们能否将任何.htc文件转换为.js文件?

问题是如果我们使用htc来进行png修复,那么我们将htc添加到css文件中

body { behavior: url("csshover3.htc"); } 
Run Code Online (Sandbox Code Playgroud)

但是这不是W3C有效的,所以想要将.htc转换为.js然后用作js文件来附加,这样它就会对W3C有效.

任何人都可以告诉我如何转换和使用任何.htc文件作为JavaScript文件?

javascript html-components

46
推荐指数
3
解决办法
4万
查看次数

表示分数的数学符号是什么?

我想以2/3HTML格式显示(即2除以3),我不想使用/.使用HTML格式化分数/除法的正确符号是什么?

html

42
推荐指数
6
解决办法
5360
查看次数

我可以将整个HTML文档加载到Internet Explorer中的文档片段中吗?

这是我一直遇到的一些困难.我有一个本地客户端脚本,需要允许用户获取远程网页并搜索结果页面的表单.为了做到这一点(没有正则表达式),我需要将文档解析为完全可遍历的DOM对象.

我想强调的一些限制:

  • 我不想使用库(比如jQuery).我需要在这里做太多的臃肿.
  • 在任何情况下都不应执行远程页面中的脚本(出于安全原因).
  • getElementsByTagName需要提供DOM API等.
  • 它只需要在Internet Explorer中工作,但至少在7中工作.
  • 让我假装我无法访问服务器.我这样做,但我不能用它.

我试过的

假设我在变量中有一个完整的HTML文档字符串(包括DOCTYPE声明)html,这是我到目前为止所尝试的:

var frag = document.createDocumentFragment(),
div  = frag.appendChild(document.createElement("div"));

div.outerHTML = html;
//-> results in an empty fragment

div.insertAdjacentHTML("afterEnd", html);
//-> HTML is not added to the fragment

div.innerHTML = html;
//-> Error (expected, but I tried it anyway)

var doc = new ActiveXObject("htmlfile");
doc.write(html);
doc.close();
//-> JavaScript executes
Run Code Online (Sandbox Code Playgroud)

我也尝试从HTML中提取<head><body>节点,并将它们添加到<HTML>片段内的元素,仍然没有运气.

有没有人有任何想法?

html javascript internet-explorer dom

42
推荐指数
1
解决办法
2万
查看次数