2012-07-16 86 views
0

我得到這個代碼:這個JQuery可以縮短嗎?

$(document).ready(function() { 
    $('tr.DataDark input[type=checkbox], tr.DataLight input[type=checkbox]').click(function() { 
     $(this).closest('tr').toggleClass('Selected'); 
    }); 
    $('tr.DataDark input[type=checkbox]:checked, tr.DataLight input[type=checkbox]:checked').each(function() { 
     $(this).closest('tr').addClass('Selected'); 
    }); 
}); 

您可以縮短寫的?

感謝您的建議。

+1

我修正了您的代碼在編輯時被正確縮進,並且在我的編輯頂部重新敲擊以再次將其擰緊。請學習如何格式化本網站上的代碼(一項基本功能)。突出顯示代碼並在文本編輯器中使用「{}」按鈕,然後在發佈之前查看預覽窗口。 – jfriend00 2012-07-16 09:29:23

+0

第一次計時器,我的壞。我感謝你的工作!不會再發生。 – Bertjuhh 2012-07-16 11:05:42

+0

歡迎來到Stack Overflow。您的問題不符合預期格式:stackoverflow.com/faq#questions。你應該請求幫助來解決一個真正的問題,而不是如何去做。 – 2012-07-16 17:44:25

回答

2

也許這樣?不是更短,但可能更簡單。

$(document).ready(function() { 
    var checkBoxes = $('tr.DataDark input[type=checkbox], tr.DataLight input[type=checkbox]'); 

    checkBoxes.on("click", function() { 
    $(this).closest('tr').toggleClass('Selected'); 
    }); 

    checkBoxes.filter(':checked').closest('tr').addClass('Selected'); 
}); 

使其更短,你可以直接放棄了checkBoxes變量和鏈filter().closest().addClass()調用on("click")

0

沒有向我們顯示匹配的HTML,所以我們可能會看到什麼快捷方式是可能的,沒有有意義的方法來縮短您提供的代碼行數。

有辦法改變它或將其最小化以減少字符數或將多行摺疊成一個較長的行,但如果你想保持它的可讀性並且仍然執行相同的邏輯而不是人爲地崩潰多個邏輯組合成一個更長的行,它將需要大約你有的代碼行數。

+0

這應該是一個評論... – 2012-07-16 09:33:54

+0

@AndreasNiedermair - 不,這是一個問題的答案與所提供的信息問。答案是不。 – jfriend00 2012-07-16 09:34:12

+0

謝謝jfriend00。 – Bertjuhh 2012-07-16 11:55:58