javascript - ie8 附加子不工作

标签 javascript jquery html internet-explorer-8

我正在开发一个必须在 IE8 上运行的网站。

我需要创建一堆动态段落,因为我在运行时从服务器提取数据。

为此,我使用以下代码:

var tempAbstract = layerItems[iter].abstract; // string
var text1 = document.createElement('p');      // paragraph element 
text1.textContent = tempAbstract;             // assigning string to paragraph
$(text1).css({top:  iter*25 + 30,  left: 200, position:'absolute'});  // positioning
$(text1).css('color', 'black');                                // make text color black
document.getElementById("listLayersWrapper").appendChild(text1);  // appending to div

我的问题是文本无法呈现。

当我计算添加元素之前和之后的段落 div 时,计数器会按您的预期递增,但文本不会呈现。此外,当我调用 position().leftposition.top() 时,元素也具有正确的坐标。

我不确定我做错了什么并且已经没有选择了。

最佳答案

问题似乎不在于 appendChild,而是在于 textContent。根据the MDN page , textContent 仅在 IE9 及更高版本中可用。旧版本的 IE 确实有 non-standard innerText property你可以用它来实现同样的事情。以下是实现此功能的方法。

示例:

var tempAbstract = layerItems[iter].abstract;
var text1 = document.createElement('p');
if(text1.textContent !== undefined)
{
    text1.textContent = tempAbstract;
}else{
    text1.innerText = tempAbstract;
}
$(text1).css({top:  iter*25 + 30,  left: 200, position:'absolute'});
$(text1).css('color', 'black');
document.getElementById("listLayersWrapper").appendChild(text1);

或者,这可以在 jQuery 中实现。

示例:

$('<p></p>')
    .text(layerItems[iter].abstract)
    .css({
        top: iter*25 + 30,
        left: 200,
        position:'absolute',
        color: 'black'
    })
    .appendTo("#listLayersWrapper");

关于javascript - ie8 附加子不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25754820/

相关文章:

jquery - 使用 Ajax 获取 Controller 值

javascript - 命名回调函数不起作用

javascript - vueJS 上的全局消息 (notif) 调用

jquery - 在 jquery slider 中处理不同大小的图像

javascript - jQuery/JavaScript : Avoid unique ID's for each row in a table?

html - 如何将一个 div 放在另一个 div 中

javascript - Mac Safari 单个 TABLE 即使在空的时候也是 1px 宽

javascript - 如何在 Docker 上部署的 React JS 应用程序中隐藏 API key 和 secret

javascript - 使用 ionic 框架将屏幕分成两部分?

javascript - 动态加载 Web 组件/HTML 导入?