2014-12-19 114 views
0

我想定义自定义HTML元素来声明HTML中的某些块。这些块可以通过jQuery找到。例如:自定义HTML元素兼容性

<gcms-block id="1"> 
     ... 
    </gcms-block> 
    <script> 
     $(document).ready(function() { 
      $("gcms-block[id='1']").html("new content"); 
     }); 
    </script> 

gcms-block只使用jQuery的方法来获取或设置在块的内容(所以我不希望应用样式或类似的东西的元素)。由于我使用的CMS的限制,我不能只是将一个ID添加到<div>元素并使用它来获取该块。

所以我的问题是,如果这种方法是兼容多个浏览器?如果不是,有什么更好的方法来做到这一点?

+0

所以你可以定义一个新的HTML元素,但是你不能只在'div'上使用'id'。这是为什么?而旧的浏览器不会渲染这一点,更不用说它不是有效的HTML。 – putvande

+0

由于CMS使用的模板引擎,它在一个页面上呈现块,并不是所有这些块都有一个围绕它们的容器,并带有相应的ID。因此,要使用JQuery访问它们,我需要调整所有块模板(100+)。或者我只是将带有id属性的gcms-block标记添加到呈现的块中。 –

回答

0

尽管浏览器支持自定义元素,但如果您关闭此操作,则会打破“标准”,但这并不是最佳实践。

如果受限于CMS的限制,您可能无法解决此问题。

如果您打算使用不支持的元素的路线,您可能希望省略特殊字符并将事物格式化为定义的html元素,以使它们尽可能接近标准元素。

+0

这些自定义标签只会在管理面板中呈现。它确实打破了标准,但是如果仅在管理面板中使用它,这真的很重要吗? –

+0

http://www.w3.org/html/wg/drafts/html/master/dom.html#elements –

+0

这只是被认为是不好的做法。该网页将呈现没有任何问题,但它不被认为是有效的HTML –