代码之家  ›  专栏  ›  技术社区  ›  Joshkunz

jQuery。text()和。innerHTML不在IE中工作

  •  1
  • Joshkunz  · 技术社区  · 15 年前

    我试图在一个div中添加一些文本,非常简单,但我一辈子都无法在IE中使用它。它在Chrome、Safari和Firefox中都可以使用。

    以下是jQuery:

    $("div#dateRanges #startDate").text(typeValues.dateRanges[1][0]);
    $("div#dateRanges #endDate").text(typeValues.dateRanges[1][1]);
    

    下面是我正在编辑的html:

    <div id="dateRanges">
        <span id="startDate"></span>
        <span id="endDate"></span>
    </div>
    

    使用jQuery获取元素,然后尝试设置。innerHTMl也不起作用。

    var startDate = $("div#dateRanges #startDate").first();
    startDate.innerHTML = typeValues.dateRanges[1][0]; //Sets the text date values
    var endDate = $("div#dateRanges #endDate").first();
    endDate.innerHTML = typeValues.dateRanges[1][1];enter code here
    

    为了消除潜在的困惑,我遇到的问题是设置跨距的文本。另外,在页面加载后通过AJAX更新这些数据的信息也很重要。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Matthew Flaschen    15 年前

    第二,需要获取原始DOM元素。你可以用 [0] .get(0)

    var startDate = $("div#dateRanges #startDate")[0];
    var endDate = $("div#dateRanges #endDate")[0];
    

    可能 text 可以工作,但您希望它被视为HTML。我想你可以用 html 而是在这里:

    $("div#dateRanges #startDate").html(typeValues.dateRanges[1][0]);
    $("div#dateRanges #endDate").html(typeValues.dateRanges[1][1]);
    
        2
  •  1
  •   Zain Shaikh    15 年前

    尝试以下代码,并确保 typeValues.dateRanges 不是空的。

    var startDate = $("div#dateRanges #startDate");
    startDate.html(typeValues.dateRanges[1][0]); //Sets the text date values
    var endDate = $("div#dateRanges #endDate");
    endDate.html(typeValues.dateRanges[1][1]); //enter code here
    
        3
  •  0
  •   PapaHotelPapa    11 年前

    显然,这是因为jQuery $('#foo') 方法返回一个对象而不是元素。这里有一篇关于它的精彩短文: http://markmail.org/message/nj3iclk6jnczshop

    为了解决这个问题,我可以想象,您可以使用那篇文章中建议的方法,但我这样做的方式只是使用jQuery的 .html() 方法不带任何参数,正如本文所建议的那样。