10

次の例では、FF ではアラート 1 と 2 が表示されますが、Safari では 1 つだけです。この行に 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>
4

2 に答える 2

21

閉じ括弧 ] がありません。また、この場合、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 でどのように機能していたかはわかりません。)

于 2013-10-22T21:47:24.317 に答える