我正在寻找一种优雅的方式将数据添加到服务器端的元素,以便 jQuery/JavaScript 可以使用它。我也不想对服务器进行太多调用,因此数据必须预先存在。
场景示例。服务器端(PHP),我创建了一个用户图像列表。为此,我想添加姓名、姓氏、年龄等。
单击图像时,jQuery 必须对这些数据进行处理。
我考虑过的可能性:
将数据作为href,然后单击,获取href并返回false。
将数据作为类。
有没有更好的方法?
data-
HTML 规范为此目的保留了以 开头的属性。例如:
<p data-name="John Doe" data-age="256">Hello World</p>
只要您遵循data-*
格式,您可以随意命名它们。
如果您需要结构化语义数据,请考虑使用带有适当模式的RDFa Lite 。
对于 HTML5,您有自定义数据属性。
如果您想要旧规范的有效 HTML,最好的选择可能是将数据嵌入到<span>
元素中,这些元素的样式display:none
和定位方式将它们与图像相关联并且易于使用 jQuery 访问(例如,作为具有一个特定的类)。
您可以创建data
属性:
<a href="link.html" data-content="demo">Text</a>
然后阅读它们:
$('a').data('content');
如果您有很多数据元素,您可以通过将数据存储在 Javascript 变量中来将它们排除在标记之外,并且只需使用data-userid
orid
属性来存储对用户数据的 ID 引用。
例如,如果您有一个 PHP 用户数组,您可以将其 json_encode 为 Javascript 变量:
var users = <?php echo json_encode($users); ?>;
在您的标记中,只需存储 ID:
<img src="..." alt="..." data-userid="x" />
然后,您可以在 Javascript 数组中查找数据。这种方法的好处是,如果您需要存储大量数据,它不会对标记造成干扰。