2013-02-06 67 views
2

我希望能夠卸載setStatus()以接受幾個參數 - 但現在我甚至無法將硬編碼選擇器工作。我如何正確卸載setStatus()函數?傳遞'this'作爲參數,但在調用函數的上下文中運行

HTML

<div id="first:test"> <span class="statusFlag"></span> 
    <br/> 
    <input type="checkbox" value="Stuff">Box 1</input> 
    <input type="checkbox" value="Stuff">Box 2</input> 
    <input type="checkbox" value="Stuff">Box 3</input> 
</div> 
<div id="second:test"> <span class="statusFlag"></span> 
    <br/> 
    <input type="checkbox" value="Stuff">Box 1</input> 
    <input type="checkbox" value="Stuff">Box 2</input> 
    <input type="checkbox" value="Stuff">Box 3</input> 
</div> 
<div id="noTest"> 
    <input type="checkbox" value="stuff">No Validate</input> 
</div> 

jQuery的

$('[id$=test] input:checkbox').change(function() { 
    if ($(this).parent().children('input:checkbox').filter(':checked').length > 0) { 
    setStatus(this); 
    } else { 
    $(this).closest('[id$=test]').find('.statusFlag').css('color', 'red').text('Incomplete'); 
    } 
}); 

function setStatus(oldthis){ 
    alert(oldthis); 
    $(oldthis).closest('[id$=test]').find('statusFlag').css('color', 'green').text('Complete'); 
} 

的想法是動態傳遞選擇和對每個格部分文字集......所以最終是這樣的:

setStatus(this, '[id$=test]', 'red', 'Incomplete'); 

這裏撥動 http://jsfiddle.net/pMAXs/

回答

1

您在第二個選擇器中找不到類。

$(oldthis).closest('[id$=test]').find('statusFlag').css('color', 'green').text('Complete'); 

「statusFlag」 - > 「.statusFlag」

假設我理解你的最終目標是正確的,請參閱:http://jsfiddle.net/pMAXs/3/

+0

唉。感覺像星期一。感謝您與另一組眼睛的幫助。 – tsalb

相關問題