我已經使用的ID和標題,但我需要通過2個比特來解析...jQuery attr是否允許非標準?
$(this).attr("title"); $(this).attr("id");
請問$(this).attr("custom1");
工作?
我已經使用的ID和標題,但我需要通過2個比特來解析...jQuery attr是否允許非標準?
$(this).attr("title"); $(this).attr("id");
請問$(this).attr("custom1");
工作?
是的,順便說一句,你可以一次設置多個屬性:
$('.myselector').attr({
src: 'thefile.gif',
width: 200,
height: 300 });
是的,你可以在HTML5中使用它所有的data-attributes
。哪種方式可以添加額外的屬性?
此外,所有data-*
屬性被自動添加到jQuery的data()
對象爲方便
如果你只是想關聯(通過名稱)的一些數據與DOM元素,你最好使用」。數據() 「方法:
$(this).data('custom1', someValue);
的」。資料()」 API使得HTML5式 「數據foo」 的屬性編碼成訪問的HTML:
var foo = $(this).data('foo'); // gets the "data-foo" attribute value from element
這是所有點的清晰的解決方案。所以你不禮貌你的HTML標記與無效屬性。也許你也可以在這裏查看api:http://api.jquery.com/data/ – onigunn 2011-03-07 18:16:38
@asrijaal:'.data'在所有點上都不是更清潔的。使用'.data'在讀寫之間缺乏對稱性:'.data('custom','foo')'不會將'data-custom =「foo」'放入DOM中。 '.attr'沒有這個問題。您寫入的任何[原始]都可以在DOM中訪問。 – 2011-03-07 18:48:00
@Roatin Marth是的,這是真的,但一致使用「.data()」我不明白爲什麼它很重要。由於內存使用原因,將JavaScript對象直接附加到DOM元素是有風險的,因爲(主要在IE中)DOM元素的JavaScript附錄不能被DOM收集器垃圾收集。 – Pointy 2011-03-07 18:49:37
是的,但它不是一個好主意。
如果您想在元素上存儲某些數據,請更好地使用.data('foo', 'bar');。
爲什麼它不是一個好主意? .data()是否在帶有html5文檔類型和IE8的頁面上工作? .attr()似乎對我很好,雖然我好奇,爲什麼.data是更好的選擇。謝謝! – Chris 2014-01-30 04:16:58
是的,你可以做的最好的事情就是測試它。
<script>
$(document).ready(function() {
// Handler for .ready() called.
alert("custom1 = " + $("#myField").attr("custom1"));
});
</script>
<div id="myField" custom1="My Custom Field"></div>
現在,你破壞了標記,所以我建議存儲ALT標籤或名稱標籤您的信息,以防止()。
你可以嘗試,並告訴我們:O) – 2011-03-07 18:12:41