2011-07-01 16 views
0

以下のスクリプトでは、「my_theme」要素はディレクトリリストの選択リストです。jQueryを使用して選択リスト内の選択した項目のテキストを変更する方法

"change"イベントが発生すると、jqueryが呼び出され、選択されたフォルダにstyle.cssファイルがあるかどうかを調べるための "get"がトリガされます。 getはtrue/falseを返します。

すべて正常です。私はちょうど取得の結果に応じて選択リストの項目を飾る方法を決定しようとしています。

たとえば、falseの場合、選択した項目の背景を灰色にし、オプション名ラベルにテキストを追加したいとします。

したがって、リスト内の現在選択されている項目が「アルファ」で、$ .getがfalseを返す場合、テキストは「アルファ(非アクティブ)」になります。

$('#my_theme').change 
(
    function() 
    { 
    //check if this folder has a style.css file 
    $.get('<?php echo get_bloginfo('template_directory') ?>/getStyle.php', {theme: myImage}, function(data){doActive(data);}); 
    } 
); 

function doActive(data){ 
if(active){ 
    //if the stylesheet is missing, append the label with " (inactive)" 
    $('#my_theme :selected').text() = $('#my_theme :selected').attr('value') + ' (inactive)'; 
    } 

オプションの「value」属性は、そのラベルと同じです。 }

答えて

1
function doActive(data){ 
if(active){ 
    //if the stylesheet is missing, append the label with " (inactive)" 
    $('#my_theme :selected').text($('#my_theme :selected').attr('value') + ' (inactive)'); 
    } 
+0

+1これはテキストで動作しますが、私はselectの "value"に対してテストする必要があると思います。これはtext()ノードではありません(つまり、Ctrlキーを押しながらShiftキーを押しながらクリックすると、 –

+0

text()を使用してからattr( 'value')を使用するように変更しようとしていますが、これはうまくいかないようです> if(!active) attr( 'value')+ '(inactive)');} –

+0

.attr( 'value')が動作します。 –

1
$('#my_theme :selected').each(function(){ 
    $(this).html($(this).html() + ' (inactive)').css('background-color','gray'); 
}); 
+0

+1のおかげエイリアン、私はリアムの答えと一緒にこれを使用することができます。 –

+0

私はこの機能の中で発砲するための警告を受け取ることができません。 $( '#my_theme:selected')。それぞれ(function(){alert( 'each');}); //起動しない –

+0

コンソールにエラーが表示されていませんか? – AlienWebguy

関連する問題