2011-07-01 57 views
0

在下面的腳本中,「my_theme」元素是目錄列表的選擇列表。如何使用jQuery在選擇列表中更改所選項目的文本

當它的「change」事件被觸發時,jquery被調用並觸發一個「get」來確定所選文件夾是否有一個style.css文件。 get返回true/false。

所有這一切工作正常。我只是試圖根據get的結果來確定如何裝飾選擇列表中的項目。

例如,如果它爲false,我想讓所選項目的背景變灰,並在選項名稱標籤上附加一些文本。

因此,如果列表中當前選定的項目是「alpha」,並且$ .get返回false,則文本應該變成「alpha(不活動)」。

$('#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而不是text()節點的「值」它是持續的,第二次選擇它變成(不活動)(不活動)等。 –

+0

嘗試從使用文本()更改爲使用attr('value')。這似乎不起作用> if(!active) {$('#my_theme:selected')。text($('#my_theme:selected')。attr('value')+'(inactive)');} –

+0

.attr('value')works。Thanks! –

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

+1感謝外國人,我可以與Liam的答案一起使用。 –

+0

我無法在此功能中觸發警報。 $('#my_theme:selected')。each(function(){alert('each');}); //不會觸發 –

+0

控制檯中是否顯示錯誤? (在Chrome中按住CTRL + SHIFT + I,單擊控制檯,刷新頁面。) – AlienWebguy

相關問題