我有以下JavaScript代码:
(function() {
function f(){ alert(1); }
return f();
function f(){ alert(2); }
})();
Run Code Online (Sandbox Code Playgroud)
你能解释为什么警报弹出2而不是1吗?
谢谢,
有没有将JSON数据导出到CSV/Excel而不与服务器端进行任何交互?仅使用Javascript?还是Flash?我目前正在使用ZeroClipboard将值复制到剪贴板中,但我想从浏览器(FF,Chrome,IE等)直接打开生成的值到Excel中.
谢谢.
我过去不必做这样的事情,我想知道它是否确实可行.我允许添加多个代码,只要它们用逗号分隔即可.我想要做的是在用户点击"okay"按钮时,显示输入的数字将显示一个在彼此之上并且旁边有一个"删除"按钮.这一部分很容易......困难的部分是将逗号剥离出来并将新行放在其中.
是否有任何人可以指出我的例子或样本?
我有一个简单的类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.
此代码抛出错误.
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.为什么会发生这样的事情?
有没有办法在对象自己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)我们来看一个简单的例子:
<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,但滚动事件太慢)?
我正在制作一个关于产品(颜色等)的选择的脚本,它适用于除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)
我在IE和Edge的控制台中得到以下输出:
对象不支持属性或方法'forEach'
在搜索了这个问题后,我了解到IE 9及更新版本应支持此功能.我试图自己定义功能但没有成功.当我记录该函数时,它被定义为一个函数([native code]内部带有" ").
我用一个替换.forEach了for它,它工作得很好,
forEach()针对Internet Explorer和Edge的特定用法?我以为它是Array.prototype.forEach最新版本的IE(和所有版本的Edge)都有它......?
我正在尝试通过单击"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节点.
我有一个函数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 ×9
arrays ×2
dom ×2
json ×2
class ×1
css ×1
excel ×1
flash ×1
foreach ×1
java ×1
jquery ×1
polymorphism ×1
reflection ×1
runtime ×1
stringify ×1