У вас есть пара опций, которые приходят на ум.
Если вы хотите, чтобы специфичные для сайта пользовательские атрибуты использовались со сценариями, один из способов - встроить скрипт прямо в элемент, к которому вы хотите добавить атрибуты.,Например:
<span id="myId1"><script type="text/javascript">
var myId1Span = document.getElementById("myId1");
myId1Span.myData = {};
myId1Span.myData.firstname = "John";
myId1Span.myData.surname = "Smith";
</script>My Text</span>
Еще один способ добавления дополнительных данных к вашим элементам - это вставить данные в атрибут класса.
Таким образом, вы можете получить
<span class="myCssClass http://example.com/hasData
data-firstname:John data-surname:Smith">My Text</span>
Если вы используете данные для скриптинга, то вы можете добавить скрипт ниже для извлечения этих данных.Вы можете добавить это непосредственно перед тегом закрытия тела.
<script type="text/javascript">
//<![CDATA[
if (! document.getElementsByClassName)
{
// From http://lawrence.ecorp.net/inet/samples/js-getelementsbyclassname.shtml
document.getElementsByClassName = function(class_name)
{
var docList = this.all || this.getElementsByTagName('*');
var matchArray = new Array();
var re = new RegExp("(?:^|\\s)"+class_name+"(?:\\s|$)");
for (var i = 0; i < docList.length; i++)
{
if (re.test(docList[i].className) )
{
matchArray[matchArray.length] = docList[i];
}
}
return matchArray;
}
}
var hasData = document.getElementsByClassName("http://example.com/hasData");
for (var i = 0 ; i < hasData.length ; i++)
{
var myElem = hasData[i];
myElem.myData = {};
var dataClassList = myElem.className.split(" ");
for (var j = 0 ; j < dataClassList.length ; j++)
{
var dataCandidate = dataClassList[j];
if (dataCandidate.substring(0, 5) == "data-")
if (dataCandidate.indexOf(":") >= 0)
{
var nameValue = dataCandidate.split(":", 2);
myElem.myData[nameValue[0].substring(5)] = nameValue[1];
}
}
}
//]]>
</script>
Это должно привести к тому, что тот же самый объект myData
будет добавлен в диапазон как первая опция.
http://example.com/hasData class - это просто флаг, указывающий, какие элементы должны быть обработаны.Для этой цели вы можете использовать любую понравившуюся вам строку.
Оба метода совместимы со стандартом XHTML 1.0 Strict и будут работать, если будут text/html
или application/xhtml+xml
.