jQuery(this).html(jQuery(this).html() == '▼ SHOW ▼' ? '▲ HIDE ▲' : '▼ SHOW ▼');
これにより、要求どおりにテキストが切り替わりますが、
▼
▼ではなくhtmlのように
誰にもアイデアはありますか?
問題は、要素コンテンツから取得した html (またはテキスト) コンテンツが既に変換されていることです。したがって、▼
はもう存在しません。
このスクリプトが UTF-8 の場合は、次のようにすることができます。
$(this).html(jQuery(this).text() == '▼ SHOW ▼' ? '▲ HIDE ▲' : '▼ SHOW ▼');
編集、UTF-8 を必要としない別の単純なバージョン:
$(this).html(jQuery(this).text().indexOf('SHOW')>0 ? '▲ HIDE ▲' : '▼ SHOW ▼');
以下を試してください:
$('#foo').toggle(function() {
$(this).html('▲ HIDE ▲');
}, function() {
$(this).html('▼ SHOW ▼');
});