放置在HTML文档中的自定义标记标记是否会影响流程,是否可以使用JS解析它们?

时间:2014-03-24 14:06:04

标签: javascript html html5

是否可以执行以下操作

<body>
    <main>
        <!-- CONTENT -->
    </main>
    <foot>
        <!-- FOOTER CONTENT -->
    </foot>
</body>

如果我然后编写了一些JavaScript,它们可以执行以下操作。请注意,我不希望你写下这里的实际代码。这只是核心功能的一个模型。

for(elem inside main){
    elem.makeItBig();
}
for(elem inside foot){
    if(elem is img){
        elem.makeItSmall();
    }
}

我知道这篇文章Is there a way to create your own html tag in HTML5?。但我真的不想创建标签来设置它们的样式,而是为DOM提供标识属性,我可以使用JavaScript将其挂钩。想象一下类似于某个类,但使用的方式是可以使用这些标记将许多PHP生成的部分拼接在一起。

如果在HTML中使用make up标记,浏览器会忽略它,否则会引发错误。

4 个答案:

答案 0 :(得分:0)

就我所知,你可以使用自己的标签。

你需要做些什么来让他们在旧的IE浏览器中工作。

更重要的一点是 - 为什么你想要?它不会使您的代码非常易于维护或面向未来。只需在适当的元素上使用类。

答案 1 :(得分:0)

您可以创建自定义标签吗?是。这是个好主意吗?不是因为某些浏览器可能无法将您的标记识别为有效的html标准。你可以查看:http://www.w3.org/MarkUp/html-spec/html-spec_4.html#SEC4.2.1

对于自定义元素规范,您可以查看自定义元素的标准规范:http://w3c.github.io/webcomponents/spec/custom/

答案 2 :(得分:0)

虽然你的方法看起来不错,但想想改变另一组元素的大小......你可能会使用相同的函数,所以为什么不这样做:

var makeItBig = function(elem){...};
for(elem in main){
  makeItBig(main[elem]);
}

这样您就不必为需要更改的每个元素创建新方法。

但是,如果你真的需要它,你可以这样做:

var makeItBigFunction = function(){var elem = this; ...};
// create new methods
for(elem in main){
  main[elem].makeItBig = makeItBigFunction;
}
// make use of them
for(elem in main){
  main[elem].makeItBig();
}

请注意,DOM对象的属性(或方法)与HTML属性之间存在很大差异。

答案 3 :(得分:-1)

随意使用HTML5标记,例如<content><header><footer><aside>等。

你可以在这里阅读更多关于它们的内容:http://www.w3schools.com/html/html5_new_elements.asp在&#34;新的语义/结构元素&#34;中。这些应被视为大多数现代浏览器都支持。实际上,您可能使用任何其他自定义标签,但其默认属性(显示,位置等)可能无法预测。