以下内容在 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 中是如何工作的。)
关于按数据属性的 jQuery 选择器在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528955/