我正在寻找一种优雅的方式将数据添加到服务器端的元素,以便jQuery / JavaScript可以使用它。我也不想对服务器进行太多调用,因此数据必须预先存在。
场景示例。 服务器端(PHP),我创建了一个用户图像列表。对此,我想添加名字,姓氏,年龄等 单击图像时,jQuery必须对此数据执行某些操作。
我考虑过的可能性:
将数据作为href,然后单击,获取href并返回false
将数据作为类。
有没有更好的方法?
答案 0 :(得分:6)
为此目的,HTML规范保留以data-
开头的属性。例如:
<p data-name="John Doe" data-age="256">Hello World</p>
只要您遵循data-*
格式,就可以按照自己的喜好命名。
如果您需要结构化语义数据,请考虑将RDFa Lite与适当的架构一起使用。
答案 1 :(得分:1)
对于HTML5,您有custom data attributes。
如果您想要旧版规范的有效HTML,最好的选择可能是将数据嵌入<span>
个元素中,这些元素的样式为display:none
,其位置可以将它们与图像相关联,使用jQuery很容易访问(例如,作为具有特定类的子元素)。
答案 2 :(得分:0)
您可以创建data
属性:
<a href="link.html" data-content="demo">Text</a>
然后阅读:
$('a').data('content');
答案 3 :(得分:0)
如果你有很多数据元素,你可以通过将数据存储在Javascript变量中来保持它们不被标记,只需使用data-userid
或id
属性来存储ID引用用户数据。
例如,如果您有一个PHP用户数组,您可以将其json_encode编码为Javascript变量:
var users = <?php echo json_encode($users); ?>;
在您的标记中,只需存储ID:
<img src="..." alt="..." data-userid="x" />
然后,您可以在Javascript数组中查找数据。这种方法的好处是,如果您需要存储大量数据,它在标记上是不显眼的。