【问题标题】:Adding data to XHTML tags将数据添加到 XHTML 标记
【发布时间】:2023-03-30 22:15:01
【问题描述】:

我的网站是 XHTML 1.1,我在页面上的 <li><div> 标记中添加了“rel”属性,以便在页面上存储 jQuery 脚本的数据。验证我的页面时,我收到错误:“没有属性 'rel'”。那么,在 HTML 标签中存储任意数据的最佳方式是什么?

我正在为我的网站创建一个 cmets 页面。输入评论时,通过 AJAX 发布,返回所有 cmets 的 JSON。然后,我查看“rel”值以查看页面上已经存在哪些 cmets,然后只添加新的。

jQuery 代码工作正常,只是 'rel' 属性没有验证。

【问题讨论】:

  • 为什么不直接返回新评论的 JSON 格式?
  • @Dave,我想到了这一点,但是如果有人在您打开页面和您发表评论之间发表评论怎么办。我希望加载所有新的 cmets。
  • 谢谢大家。我不知道为什么我什至首先使用'rel',我真的应该使用'id'(或'name')。我喜欢扩展 XHTML 以支持新属性的想法……或者我可以切换到 HTML5。
  • 您可以通过隐藏输入向表单添加某种哈希(例如最新评论的 id)。然后在保存评论后(服务器端)检查具有更大 id 的 cmets 并仅返回这些。
  • @Dave,这个主意不错。

标签: html xhtml


【解决方案1】:

虽然它不是 XHTML 规范,但您可以使用 HTML5 规范中包含的 data-* 属性。

http://html5doctor.com/html5-custom-data-attributes/

如果您想完全符合 XHTML 1.1,您需要创建一个架构并将其命名空间包含在 html 元素中,其中架构定义了您要使用的属性以及它们应用的元素.

Extending XHTML

【讨论】:

  • +1 您今天可以开始使用 HTML5 Doctype,所有浏览器都应该正确处理。
  • 被选为扩展 XHTML 帖子的答案,这很好。
【解决方案2】:

由于rel 不是li 的有效属性,您应该改用id 属性,它在那里也有效。

【讨论】:

  • 我不知道为什么我一开始不这样做。
【解决方案3】:

我认为在标签中存储“任意”数据与 XHTML 的精神背道而驰。您应该改用jQuery.data 方法。

【讨论】:

  • 刚刚发布了相同的答案并删除了它。如果我正确理解了这个问题,数据应该已经存在于 HTML 中。如果不是这种情况,那么您可以将数据存储在变量中,而无需将其添加到 HTML 元素中。
【解决方案4】:

JQuery 似乎喜欢将类作为存储不同 html 元素状态的一种方式。

一个例子是 jQuery UI 选项卡如何使用 ui-state-active 类来定义当前选择的选项卡。

这种方法的一个好处是您可以很容易地根据您正在寻找的不同状态选择元素。

提醒一下,您可以(实际上)向一个元素添加任意数量的类,只需用空格隔开即可。

<li class="client_data already_added red_text etc">Bob</li>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2021-03-21
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多