2011-05-31 100 views
3

無論是在jQuery級別還是在DOM級別,複選框的checked屬性都必須有特殊的內容。有了這個HTML:如何將checked =「checked」屬性添加到.html()方法的輸出

<html> 
    <body> 
     <input id="cb" type="checkbox" /> 
    </body> 
</html> 

而且這個JavaScript:

$(function() { 

    $("#cb").attr("checked","checked"); 
    alert("Expecting this HTML fragment to have a 'checked' attribute:\n\n" 
      + $("body").html()); 

}); 

我沒有收到我的期望;如果我使用除「checked」之外的屬性名稱,它將按預期工作。

我試圖讓它工作的原因是我需要獲取HTML,因爲它存在於瀏覽器DOM中並將其轉換爲PDF,因此用戶可以獲取頁面的PDF版本,因爲它們是「重新看着它;它在客戶端大量操縱,因此直接從服務器獲取正確的HTML並不是一個簡單的選擇。

這裏是上述代碼的工作版本:http://jsfiddle.net/pettys/qTfDP/2/

回答

4
+0

有道理。感謝您的鏈接 - 很高興知道背景。 – pettys 2011-05-31 23:04:58

+0

@pettys我認爲潛在的問題是,直到1.6'attr'設置DOM屬性'checked'而沒有在標記中添加屬性。 – robertc 2011-05-31 23:09:59

+0

我沒有想過在設置屬性和設置屬性之間的區別,直到我閱讀你發送的鏈接。好東西! – pettys 2011-06-01 13:11:34

相關問題