带ID的脚本标签?

时间:2011-12-31 03:52:24

标签: html

大多数现代浏览器都支持脚本标记中的ID,例如:

<script id="aParticularScript">/* ... */</script>

我问的原因是Eclipse会显示一条警告,指出“未定义的属性名称”,但是当我使用jQuery选择器获取脚本元素的其他属性时,它在Google Chrome中正常工作。 W3Schools声明script元素不支持任何标准属性(包括id属性),但我学会了不相信W3Schools。

是否可以让脚本标记有ID?

2 个答案:

答案 0 :(得分:6)

HTML 4答案:

不,你不能,至少不是你想要有效的HTML ......

以下元素不能具有ID属性:

  • <base>
  • <head>
  • <html>
  • <meta>
  • <script>
  • <style>
  • <title>

可能会有更多。

这很令人困惑,因为仅查看ID /类属性的文档并没有明确说明它们不能与这些元素一起使用。您必须查看元素的DTD,以查看没有为元素定义常规属性,因此无法使用。


HTML 5答案:

默认文档类型声明HTMLElement适用于HTML中的所有元素,指定这些global attributes(包括ID属性)可用于任何元素创建,所以看起来你可以在HTML 5中执行此操作,但不能在HTML 4中执行此操作。

答案 1 :(得分:2)

使用<script>the validator运行id代码作为HTML4会产生此错误:

  

错误第12行,第12列:没有属性“ID”

<script>的{​​{3}}未提及HTML4 specification(包括classid)对此元素有效:

18.2.1 The SCRIPT element

<!ELEMENT SCRIPT - - %Script;          -- script statements -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  type        %ContentType;  #REQUIRED -- content type of script language --
  src         %URI;          #IMPLIED  -- URI for an external script --
  defer       (defer)        #IMPLIED  -- UA may defer execution of script --
  >

Start tag: required, End tag: required

根据coreattrs<script>可能包含id,其中包含{{1}}。在current HTML5 spec次传递中进行测试。所以据我所知:

  • HTML4中无效
  • HTML5中的有效