2015-07-11 57 views
-1

我正在編寫一個C#表單應用程序,它允許用戶將自定義html節點添加到html網頁。我有一些javascript代碼選擇一個html節點來執行特定的代碼,如jQuery ui滑塊。我不應該在html中使用數據屬性嗎?

爲了識別html節點,我需要在標籤中存儲一個標識標籤的屬性。

我是新來編寫html代碼,因此,我想問是否有任何理由不應該使用數據屬性標籤?有什麼限制是我應該知道的缺點?

這裏是我目前工作的一些示例代碼:

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 

<div data-customwebpagelayout-name='slider-increments'> 
    <div data-customwebpageobject-name='slider-increments'></div> 
</div> 

<p data-customwebpageobject-output-name='slider-increments'>1</p> 

</body> 
</html> 

謝謝。

+1

以何種方式,你需要「確定」這些節點?你爲什麼不簡單地使用'class'來「辨別」(並容易地選擇)這些元素......? – CBroe

+0

如果您需要HTML節點的唯一標識符,您可以分配一個'id'。 –

回答

0

識別和選擇HTML標籤的常用方法是使用classid

如果頁面上只有一個東西,你應該使用id。它看起來像你有你想要找出同樣的事情多,所以我會用class像這樣:

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 

<div class="customwebpagelayout slider-increments" > 
    <div class="customwebpageobject slider-increments"></div> 
</div> 

<p class="customwebpageobject slider-increments">1</p> 

</body> 
</html> 

然後,你可以選擇使用JavaScript的節點像這樣:

document.getElementsByClassName("slider-increments"); 

或如果你決定使用jQuery:

$(".slider-increments"); 

數據屬性更痛苦的工作有:

原始的Javascript (code adapted from code in this answer)

var matchingElements = []; 
var allElements = document.getElementsByTagName('*'); 
for (var i = 0, n = allElements.length; i < n; i++){ 
    if (allElements[i].getAttribute('data-customwebpagelayout-name') !== null){ 
    // Element exists with attribute. Add to array. 
    matchingElements.push(allElements[i]); 
    } 
} 
//use matchingElements; 

的jQuery:

$("*[data-customwebpagelayout-name='data-customwebpagelayout-name']"); 
相關問題