以下在FF中显示警报一和二,但在Safari中只有一个。这一行中的任何内容在 Safari 中不兼容吗? if($('div[data-foo="'+bar+'"').hasClass('baz')){
jQuery
alert('one');
if($('div[data-foo="'+bar+'"').hasClass('baz')){
alert('two');
}else{
alert('three');
}
.HTML
<div data-foo="bar" class="baz"></div>
您缺少右括号]。此外,在这种情况下,bar 是字符串文字,而不是变量。这有效:
alert('one');
if($('div[data-foo="bar"]').hasClass('baz')){
alert('two');
}else{
alert('three');
}
或者您可以将 bar 定义为变量:
var bar = "bar";
alert('one');
if($('div[data-foo="' + bar + '"]').hasClass('baz')){
alert('two');
}else{
alert('three');
}
(不知道它以前在 Firefox 中是如何工作的。
根据你想在警报语句的位置真正做什么,你可以使用以下命令创建一个快捷方式:
$('div.baz').each(function(){
alert($(this).data('foo'));
});
这应该会创建一个警报,指出bar