是否可以使用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
元素,因为后续请求可能需要使用它。