如何在JS中的文本节点(document.createTextNode(' ...'))中添加span元素?

时间:2016-05-24 07:38:41

标签: javascript string dom textnode

我知道JS中的document.createTextNode(text)仅用于创建文本,但有没有办法在其中插入两个span元素?

我有两个这样的跨度:

/*
   *   span with wrong (old) medical word
   */

  // Replacement node
  var span_old = $('<span />', {
    'class': pluginName + '-autoword-highlight wrong wrong-medical-word-'+i
  });

  // If we have a new match
  if (i !== c) {
    c = i;
    replaceElement = span_old;
  }

  span_old
  .text(fill)
  .data({
    'firstElement': replaceElement,
    'word': oldWord
  });




  /*
   *  span with new - corrected medical word
   * 
   */
  // Replacement node
  var span_new = $('<span />', {
    'class': pluginName + '-autoword-highlight corrected-medical-word-'+i
  });

  // If we have a new match
  if (i !== c) {
    c = i;
    replaceElement = span_new;
  }

  span_new
  .text(replaceFill)
  .data({
    'firstElement': replaceElement,
    'word': replaceFill
  });

  var wrong_and_corrected_medical_text = span_old[0] + span_new[0];

  return document.createTextNode(wrong_and_corrected_medical_text);

预期结果是

旧文字 - 新文字

我需要一如既往地返回Text Node。是否有一个hack来对span元素进行字符串化或其他方式?谢谢!

1 个答案:

答案 0 :(得分:1)

这是你需要的吗?

var wrong_and_corrected_medical_text = span_old.text() + span_new[0].text();

修改 所以你需要将html作为文本返回,请尝试这个。

var wrong_and_corrected_medical_text = span_old.prop('outerHTML') + span_new.prop('outerHTML');

<强>参考: array_filter