将数据添加到元素,以便jQuery可以使用它

时间:2012-12-18 09:47:26

标签: php jquery

我正在寻找一种优雅的方式将数据添加到服务器端的元素,以便jQuery / JavaScript可以使用它。我也不想对服务器进行太多调用,因此数据必须预先存在。

场景示例。 服务器端(PHP),我创建了一个用户图像列表。对此,我想添加名字,姓氏,年龄等 单击图像时,jQuery必须对此数据执行某些操作。

我考虑过的可能性:
将数据作为href,然后单击,获取href并返回false 将数据作为类。

有没有更好的方法?

4 个答案:

答案 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-useridid属性来存储ID引用用户数据。

例如,如果您有一个PHP用户数组,您可以将其json_encode编码为Javascript变量:

var users = <?php echo json_encode($users); ?>;

在您的标记中,只需存储ID:

<img src="..." alt="..." data-userid="x" />

然后,您可以在Javascript数组中查找数据。这种方法的好处是,如果您需要存储大量数据,它在标记上是不显眼的。