小编T.J*_*der的帖子

为什么即使我之前返回,第二个函数声明也会获胜?

我有以下JavaScript代码:

(function() { 
    function f(){ alert(1); }
    return f();
    function f(){ alert(2); }
})();
Run Code Online (Sandbox Code Playgroud)

你能解释为什么警报弹出2而不是1吗?

谢谢,

javascript

7
推荐指数
1
解决办法
107
查看次数

Javascript或Flash导出到CSV/Excel

有没有将JSON数据导出到CSV/Excel而不与服务器端进行任何交互?仅使用Javascript?还是Flash?我目前正在使用ZeroClipboard将值复制到剪贴板中,但我想从浏览器(FF,Chrome,IE等)直接打开生成的值到Excel中.

谢谢.

javascript flash excel json

7
推荐指数
1
解决办法
8081
查看次数

用jQuery中的换行替换结果集中的逗号

我过去不必做这样的事情,我想知道它是否确实可行.我允许添加多个代码,只要它们用逗号分隔即可.我想要做的是在用户点击"okay"按钮时,显示输入的数字将显示一个在彼此之上并且旁边有一个"删除"按钮.这一部分很容易......困难的部分是将逗号剥离出来并将新行放在其中.

是否有任何人可以指出我的例子或样本?

javascript jquery

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

如何在Java中找出声明的标识符类型?

我有一个简单的类Apple扩展自另一个简单的类Fruit.

在运行时,我可以使用

Fruit fruit = new Apple();

fruit.getClass();
Run Code Online (Sandbox Code Playgroud)

获取实际类型的水果对象,即Apple.class.

我也可以使用fruit instanceof Apple,并fruit instanceof Fruit验证这个水果对象是Apple还是Fruit的实例.这两个表达式都返回true,这是正常的.

但有没有办法确定fruit标识符的声明类型?在这种情况下是Fruit.

java reflection polymorphism runtime class

7
推荐指数
1
解决办法
2793
查看次数

在Global Scope上调用Object.prototype方法

此代码抛出错误.

try {
  alert(hasOwnProperty('window'));
} catch(e) {
  alert(e); // Type Error : can't convert undefined to object
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码不会引发错误.

try {
  alert(this.hasOwnProperty('window')); // true (if on browser)
} catch(e) {
  // through catch block
  alert(e);
}
Run Code Online (Sandbox Code Playgroud)

实例 | 直播源

就我而言,func(arg)等于this.func(arg)是否this为Global Object.为什么会发生这样的事情?

javascript

7
推荐指数
1
解决办法
292
查看次数

在*对象的toJSON之前调用replacer*?

有没有办法对象自己toJSON转换它之前调用我的替换器,这样我就可以使用原始对象而不是它的JSON友好形式,而不会覆盖toJSON对象或其原​​型,预处理对象,或者写我自己的版本JSON.stringify

例如:假设我想以Date不同于正常序列化(toISOString)的方式序列化实例.(这个问题不是特定的Date,这只是一个例子.)问题是,我的替换者没有看到Date对象,它看到一个字符串(参见下面的代码片段)因为我的替换者之前Date.prototype.toJSON被调用.

var obj = {
  d: new Date()
};
snippet.log(getType(obj.d));     // "[object Date]"

var json = JSON.stringify(obj, function(key, value) {
  if (key === "d") {
    snippet.log(getType(value)); // "string" <== Want to see a Date here
  }
  return value;
});

function getType(value) {
  var to = typeof value;
  if (to === "object") …
Run Code Online (Sandbox Code Playgroud)

javascript json stringify

7
推荐指数
1
解决办法
309
查看次数

position:sticky:当元素与正常流分离时添加样式

我们来看一个简单的例子:

<nav id="#mynav">MY NAVBAR</nav>
Run Code Online (Sandbox Code Playgroud)

和基本风格:

#mynav {
    position : sticky;
}
Run Code Online (Sandbox Code Playgroud)

我想将以下样式信息应用于我的导航栏,只有当它与正常流程分离时,才能在视觉上将其与主要内容分开(在这种情况下带阴影)

box-shadow : 0px 10px 15px 0px rgba(0,0,0,0.75);
Run Code Online (Sandbox Code Playgroud)

是否有某种伪类或类似媒体查询的东西我可以使用它?例如:

#mynav:some-pseudo-class {
    box-shadow : 0px 10px 15px 0px rgba(0,0,0,0.75);
}
Run Code Online (Sandbox Code Playgroud)

我知道有很好的插件,但是所有这些插件似乎无法实现它而不绕过(非常新的)原生功能position:sticky.相反,他们以旧式方式(滚动事件和position:fixed; top:0)进行.

那么,是否可以使用position:sticky,而不使用scroll事件,这会减慢页面的流动性(我不反对javascript,但滚动事件太慢)?

javascript css

7
推荐指数
1
解决办法
3333
查看次数

forSeach querySelectorAll在最近的Microsoft浏览器中不起作用

我正在制作一个关于产品(颜色等)的选择的脚本,它适用于除Internet Explorer(11)和Edge之外的所有浏览器.

我将每个参数的选择放在一个数组中,并使用该array.forEach()方法将一个函数应用于它们.

颜色参数的示例:

var color_btns = document.querySelectorAll('#color > p');
color_btns.forEach(function(color) {
    color.onclick = function () {
        color_btns.forEach(function(element) {
            if (element.classList.contains('selected')) {
                element.classList.remove('selected');
            }
        });
        color.classList.add('selected');
        document.querySelector('#f_color').value = color.dataset.id;
    };
});
Run Code Online (Sandbox Code Playgroud)

我在IEEdge的控制台中得到以下输出:

对象不支持属性或方法'forEach'

在搜索了这个问题后,我了解到IE 9及更新版本支持此功能.我试图自己定义功能但没有成功.当我记录该函数时,它被定义为一个函数([native code]内部带有" ").

我用一个替换.forEachfor它,它工作得很好,

  • 但是我怎么能让它发挥作用呢?
  • 是否有forEach()针对Internet ExplorerEdge的特定用法?

我以为它是Array.prototype.forEach最新版本的IE(和所有版本的Edge)都有它......?

javascript arrays foreach internet-explorer microsoft-edge

7
推荐指数
2
解决办法
4726
查看次数

DOM相当于jQuery` .detach()`?

我正在尝试通过单击"X按钮"删除输入字段.删除后,它将不会在提交表单时发布其值.出现"+按钮",允许用户再次添加所述输入.输入具有onclick打开日历的事件,重新附加后,日历不再单击打开.我不能使用jQuery.

adderBtn.onclick = function (e) {
    var elem = that.hiddenElems.shift();
    that.collectionItemContainer.append(elem);
}

removerBtn.onclick = function (e) {
    collectionItemElem.remove();
    that.hiddenElems.push(collectionItemElem);
}
Run Code Online (Sandbox Code Playgroud)

问题是如何在不丢失事件的情况下删除和重新附加DOM节点.

javascript dom

7
推荐指数
1
解决办法
1792
查看次数

为什么我的函数无法返回具有特定文本内容的元素?

我有一个函数matchTagAndText,正如名称所说,接受2个参数的选择器和文本,并检查是否有任何匹配的元素具有给定的文本.它是这样的:

function matchTagAndText(sel, txt) {
    var elements = document.querySelectorAll(sel);
    return Array.prototype.filter.call(elements, function(element){
        return RegExp(txt,'i').test(element.textContent);
    });
} 
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试选择一个td包含文本'Lorem ipsum' 的元素,但我无法这样做.

我的HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Frames</title>
</head>
<body>
    <td colspan="2" class="font-description">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora nulla iste, quae necessitatibus. Impedit mollitia delectus eum voluptas ullam! Perspiciatis in dolorem blanditiis dolores mollitia sint nostrum sunt veniam est!
    </td>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在控制台中定义它后尝试调用该函数:

var el = matchTagAndText('td.font-description','Lorem ipsum');
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个空数组.我的功能出了什么问题?

实例:

function matchTagAndText(sel, txt) { …
Run Code Online (Sandbox Code Playgroud)

javascript arrays dom

7
推荐指数
1
解决办法
381
查看次数