动态更改DOM元素的类型

时间:2014-07-15 19:34:00

标签: javascript html dom

是否可以使用JavaScript将元素转换为另一个元素?

例如,我有:

<p>Début de l'évènement : <time id=event-start></time></p>
<p>Fin de l'évènement : <time id=event-end></time></p>

这是一个通过AJAX填充的模板,但是如果没有事件结束时间,我需要将第二个time元素转换为span元素。

结果输出应为:

<p>Début de l'évènement : <time datetime=2014-09-02T08:00:00 id=event-start>2 septembre 2014 à 8h00</time></p>
<p>Fin de l'évènement : <time datetime=2014-09-02T16:00:00 id=event-end>2 septembre 2014 à 16h00</time></p>

或者:

<p>Début de l'évènement : <time datetime=2014-09-02T08:00:00 id=event-start>2 septembre 2014 à 8h00</time></p>
<p>Fin de l'évènement : <span id=event-end>Indéterminée</span></p>

我用来填充字段的JavaScript代码:

function getEventCallback(data) {
    var startEl = document.getElementById('event-start'),
        endEl = document.getElementById('event-end');

    startEl.textContent = moment(data.start).format( ... );
    startEl.setAttribute('datetime', data.start);

    if (data.end) {
        endEl.textContent = moment(data.end).format( ... );
        endEl.setAttribute('datetime', data.end);
    } else {
        endEl.textContent = 'Indéterminée';
        endEl.removeAttribute('datetime');
    }
}

问题在于endEl仍然是HTMLTimeElement,并不代表某些离散时间点。

我查看了Node界面,看来Node.nodeName是不可变的,所以我该怎么做呢?

我无法完全删除time元素,因为后续请求可能需要使用它。

0 个答案:

没有答案