Wil*_*iam 5 javascript css jquery html5
我目前正在使用HTML 5,CSS和JQuery开发Web应用程序.我有一个无序列表(ul)用于显示页面链接,每个li元素包含页面链接.此列表是使用jQuery动态创建的.
我想要做的是让列表元素只显示链接中的页面名称,但同时保留完整的链接路径.例如,"http://www.foo.com/xyz/contactus"将显示为"contactus",但li元素仍将"知道"完整的链接路径.为此目的,li的value属性将是完美的,因为我可以这样设置它们:
var ul = $('<ul/>').attr('id', 'linkList');
for (var i = 0; i < linksOnPage.length; i++) // linksOnPage is an array with all the links
{
var pgName = linksOnPage[i].toString().slice(steps[i].toString().lastIndexOf('/') + 1);
// Create list element and append content
var li = $('<li/>').text(pgName); // Set the text to the page name
li.attr('value', linksOnPage[i].toString()); // Set the value to the full link
ul.append(li);
}
Run Code Online (Sandbox Code Playgroud)
这将创建一个列表,如:
<ul>
<li value="http://www.foo.com/xyz/contactus">contactus</li>
...
</ul>
Run Code Online (Sandbox Code Playgroud)
不幸的是,自从HTML 4.01以来,li的value属性已被弃用(任何人都知道这背后的基本原理?对我来说似乎很有用......).
所以,我想就如何进行提出一些建议.一种选择是忽略弃用并且仍然使用value属性,因为所有主流浏览器仍然支持它,但我不是非常热衷于使用已弃用的功能而且它只是感觉不对.
有任何想法吗?
gdo*_*ica 10
改变自:
<li value="http://www.foo.com/xyz/contactus">contactus</li>
Run Code Online (Sandbox Code Playgroud)
至:
<li data-value="http://www.foo.com/xyz/contactus">contactus</li>
Run Code Online (Sandbox Code Playgroud)
data-*
pattern是保持DOM元素值的新HTML5方式.
您可以通过以下两种方式之一获取值:
$('#li-Id').data('value');
$('#li-Id').attr('data-value');
Run Code Online (Sandbox Code Playgroud)
您可以在这些属性上阅读John Resig的这篇博客文章.
jQuery data
函数