检测是否可以将DOM对象放置在SPAN中

时间:2012-04-20 15:36:01

标签: javascript html dom

我在SPAN中包含任意网页的部分(“从字符X到字符Y”),具有以下约束:

  1. 我不想破坏任何DOM标准(例如我不想在SPAN中包装DIV)。
  2. 我想尽量减少创建的SPAN数量(因此仅仅达到最低的子级别是不够的。)
  3. 在修改DOM之前,我需要知道给定对象是否可以合法地包含在SPAN中。

    For Instance ...

    if(child instanceof Text) {
     // Wrap in a SPAN!
    }
    else {
     // Move along
    }
    

    特别是我需要反映有效SPAN内容的JavaScript类列表,可能能够提供帮助的方法(jQuery或vanilla JS),或其他可以实现类似目标的解决方案。

1 个答案:

答案 0 :(得分:3)

span仅允许phrasing-content。我建议构建一个包含 phrasing-content 集合的所有元素的小表,并对此进行测试。

这不是一个完美的解决方案,因为某些段内元素(如a标记)也可以包含非短语内容。您可能需要以递归方式评估元素的内容,确保它们在允许它们包含在span标记之前不包含除了短语内的任何内容之外的任何内容。