2

ので、私は持っています:

<span selected="Y" onclick="change();">Click here to test~</span>


<script src="jquery-1.7.2.js"></script>

<script>
function change()
{
  $('span[selected=Y]').attr("selected","N");
}
</script>

スパンをクリックし、firebugを使用してスパンの属性を確認すると、属性「selected」が「N」ではなく「selected」に変更されました。

したがって、結果はselected = "selected" !! ??

どうして変わらなかったの?selected="N"

4

2 に答える 2

4

selectedは有効な属性ではありません。span代わりに、を使用できますdata

<span data-selected="Y">Click here to test~</span>

jQuery

$('span[data-selected=Y]').on('click', function() {
  $(this).data('selected', 'N');
});

jQuery .data()についてもっと読む

于 2012-07-16T17:06:16.973 に答える
0

その理由は、それが有効な<option>要素(たとえば、要素)selectedはブール属性であり、ブール属性の唯一の有効な値は属性自体の名前であるためです。jQueryのattr()メソッドは、属性の値を巧妙かつ「修正」しようとして失敗していselectedます。

明らかに、jQueryは無効な属性を正しく処理しません。これはある程度理解できます。オプションはgetAttribute()、要素自体のメソッド(すべての主要なブラウザーで機能します)を使用するか、data-ブラウザーおよびjQueryでサポートされているHTML5仕様に従って有効な接頭辞が付いた属性を使用することです。

于 2012-07-16T17:58:54.143 に答える