我有:
<button class="Delete" value="1">Delete</button>
<button class="Delete" value="2">Delete</button>
<button class="Delete" value="3">Delete</button>
Run Code Online (Sandbox Code Playgroud)
给定包含值的变量X(在这种情况下为1,a 2或3),那么如何隐藏与X中的值对应的按钮?
我想说的是:
$('button').val(x).hide();
Run Code Online (Sandbox Code Playgroud)
含义:"值为x的按钮,隐藏".
我有一个自定义的Javascript类(使用John Resig的简单Javascript继承创建).我希望能够比较这个类的两个实例,使用==,<,>,>=,和<=符号.
如何覆盖自定义类的比较器?
有没有办法用AM/PM值定义javascript日期对象?
像这样的东西
var startDate = new Date("1900-1-1 8:20:00 PM");
Run Code Online (Sandbox Code Playgroud) 全局对象充当顶级词汇环境(如果您愿意,则作为范围链的顶部).这意味着可以通过直接引用(如变量)访问全局属性:
// global code
this.foo = 1; // creating a global property
foo // accessing the global property via a direct reference
Run Code Online (Sandbox Code Playgroud)
这也意味着可以通过属性引用访问全局变量:
// global code
var foo = 1; // creating a global variable
this.foo // accessing the global variable via a property reference
Run Code Online (Sandbox Code Playgroud)
现在,基于上述信息,似乎可以互换地使用术语"全局变量"和"全局属性",这意味着这两个术语代表完全相同的全局绑定集.
但是,使用var例如var foo = 1;通过赋值创建的全局属性创建的全局变量之间存在两个差异,例如this.foo = 1;:
全局变量是静态范围的,而全局属性是动态添加到全局环境中的:
foo // => undefined
bar // throws ReferenceError
var foo = 1;
this.bar = …Run Code Online (Sandbox Code Playgroud)HTML:
<p>Hover</p>
Run Code Online (Sandbox Code Playgroud)
CSS:
p::after {
content: " here";
transition: all 1s;
}
p:hover::after {
font-size: 200%;
color: red;
}
Run Code Online (Sandbox Code Playgroud)
现场演示: http ://jsfiddle.net/SPHzj/13/(适用于Firefox和Chrome)
如您所见,我已经::after在段落的伪元素上设置了CSS转换.然后,当段落悬停时,两个新样式适用于转换的伪元素.
这适用于Firefox和Chrome,但不适用于IE10.我的理由是IE不理解p:hover::after选择器,因为它在IE中工作,如果你将悬停设置在祖先元素上,例如div:hover p::after- 现场演示:http://jsfiddle.net/SPHzj/14/.
但是,事实并非如此,因为IE确实能够理解选择器.诀窍是定义p:hover {}规则.(由@ maxw3st发现.)
p:hover {}
Run Code Online (Sandbox Code Playgroud)
此规则可以为空.仅仅存在这一规则将使IE10中的过渡工作成为可能.
现场演示: http ://jsfiddle.net/SPHzj/15/(也适用于IE10)
这里发生了什么?为什么IE要求转换才能在伪元素上运行?这应该被视为一个错误吗?
css pseudo-element css-transitions internet-explorer-10 css-content
我有这个代码创建链接.
/* Create a link to activate the tab */
DOM_a = document.createElement("a");
DOM_a.appendChild(document.createTextNode(t.headingText));
DOM_a.href = "javascript:void(null);";
DOM_a.title = t.headingText;
DOM_a.onclick = this.navClick;
Run Code Online (Sandbox Code Playgroud)
我需要在链接中添加图像,但是当我尝试添加图像代码时:
<img src="typo3conf/ext/ori_proyectos/res/images/interes.png">
Run Code Online (Sandbox Code Playgroud)
我明白了:
Link<img src="typo3conf/ext/ori_proyectos/res/images/interes.png">
Run Code Online (Sandbox Code Playgroud)
并不是:
Link[*_*]
[*_*]图像在哪里
源代码显示如下:
<img src="typo3conf/ext/ori_proyectos/res/images/interes.png">
Run Code Online (Sandbox Code Playgroud)
我不知道怎么写.
谢谢.
可能重复:
jQuery使用(new Function("return"+ data))(); 而不是eval(数据); 解析JSON,为什么?
给定一个表示有效JSON字符串的字符串,这两种解析方法之间是否存在差异:
var str, obj;
str = '{"prop":"value"}';
// method 1:
obj = eval( '(' + str + ')' );
// method 2:
obj = ( new Function( 'return (' + str + ');' ) )();
Run Code Online (Sandbox Code Playgroud)
我注意到jQuery使用第二种方法来解析JSON字符串(在没有内置JSON解析器的环境中).我想知道他们为什么不使用第一种方法.为什么要创建一个函数对象并在可以使用时调用它eval()?
getById.getByClassName对比qSA比较!如果我们想要选择"bar"具有ID的元素内的所有类元素"foo",我们可以这样写:
$( '#foo .bar' )
Run Code Online (Sandbox Code Playgroud)
或这个:
$( '.bar', '#foo' )
Run Code Online (Sandbox Code Playgroud)
当然还有其他方法可以实现这一点,但是为了这个问题,我们只比较这两种方法.
那么,上述哪种方法表现更好?(这需要更少的时间来执行?)
我写了这个性能测试:
(function() {
var i;
console.time('test1');
for( i = 0; i < 100; i++ ) {
$('#question-mini-list .tags');
}
console.timeEnd('test1');
console.time('test2');
for( i = 0; i < 100; i++ ) {
$('.tags', '#question-mini-list');
}
console.timeEnd('test2');
})();
Run Code Online (Sandbox Code Playgroud)
您必须在Stack Overflow开始页面的控制台内执行它.我的结果是:
Firefox:
test1:~90ms
test2:~18ms
Chrome:
test1:~65ms
test2:~30ms
Opera:
test1:~50ms
test2:~100ms
所以在Firefox和Chrome中,第二种方法的速度要快很多倍 - 就像我预期的那样.然而,在Opera中,情况正好相反.我想知道这里发生了什么.
你可以在你的机器上运行测试并解释为什么Opera的表现不同吗?
我写了这个测试,以调查Opera的qSA是否真的超级快.事实证明,它是.
(function() {
var i, …Run Code Online (Sandbox Code Playgroud) 可以这个代码
if (typeof foo != "undefined" && foo !== null) { }
Run Code Online (Sandbox Code Playgroud)
安全地重构为这段代码?
if (foo != null) { }
Run Code Online (Sandbox Code Playgroud)
这是完全一样的吗?(如果没有,它有什么不同?)
因此,(桌面)浏览器中有许多内置的全局属性.例如:
documentundefinedparseIntJSONlocationalertsetTimout在引用这些属性时,是否应该通过在其名称前加上明确地将它们标记为全局属性window.?所以,例如:
var wrap = window.document.getElementById('wrap');
Run Code Online (Sandbox Code Playgroud)
和
window.setTimeout(loop, 100);
Run Code Online (Sandbox Code Playgroud)
和
var x = window.parseInt(input.value, 10);
Run Code Online (Sandbox Code Playgroud)
我认为这个问题有三个答案:
是的,window.X在引用全局属性时应始终写.
不,你不必写window.X.只要X是好的.
这取决于财产.对于某些属性,请使用window.X,对于某些其他属性使用X.(如果这是你的答案,请详细说明.)
那么,这是什么?
javascript ×9
browser ×2
jquery ×2
class ×1
css ×1
css-content ×1
date ×1
dom ×1
eval ×1
html ×1
inheritance ×1
json ×1
object ×1
overriding ×1
performance ×1
properties ×1
scope ×1
variables ×1
window ×1