javascript - 动态添加图像到列表元素

标签 javascript jquery

我使用以下代码动态创建列表元素:

var entry = document.createElement('li');

entry.appendChild(document.createTextNode('Geralds Patta Inc.'+
'1249 Downing Street, Dallas, Tx, 75202, USA'));  
list.appendChild(entry);

我必须在此列表末尾添加一个图标,如图所示:

enter image description here

如何在列表末尾动态添加这些图标?

最佳答案

经过漫长而忙碌的搜索,找到了一个方法。希望这可以帮助。请go through this article on CSS custom variablesMDN Docs on CSS Custom variables .

注意:根据 MDN 文档,IE 不支持此方法。

使用 HTML 和 CSS:

#list > li:after
{
    content:"";
    background-image:var(--iconimg);
    background-size:cover;
    width:var(--iconwidth);
    height:10px;
    display:inline-block;
    margin-left:5px;
}
<ul style="--iconwidth:20px;" id="list">
    <li style="--iconimg:url('https://download.unsplash.com/photo-1420708392410-3c593b80d416');">Test</li>
    <li style="--iconimg:url('https://download.unsplash.com/photo-1420708392410-3c593b80d416');">Test</li>
    <li style="--iconimg:url('https://download.unsplash.com/photo-1420708392410-3c593b80d416');">Test</li>
    <li style="--iconimg:url('https://download.unsplash.com/photo-1420708392410-3c593b80d416');">Test</li>
    <li style="--iconimg:url('https://download.unsplash.com/photo-1420708392410-3c593b80d416');">Test</li>
</ul>

如果您正在使用,Font Awesome Icons

var faicons = ["calculator","calendar","calendar-check-o","calendar-minus-o","calendar-o","calendar-plus-o","calendar-times-o","camera","camera-retro","car","caret-square-o-down","caret-square-o-left"];

var elems = document.querySelectorAll("#fa > li");
elems.forEach(function(elem,index){
    elem.classList.add("fa");
    elem.classList.add("fa-"+faicons[index]);
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<ul id="fa">
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
</ul>

BootStrap Glyphicons

var bootstrapicons = ["asterisk","plus","eur","euro","minus","cloud","envelope","pencil","glass","music"]
var elems = document.querySelectorAll("#bs > li");
elems.forEach(function(elem,index){
    elem.classList.add("glyphicon");
    elem.classList.add("glyphicon-"+bootstrapicons[index]);
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<ul id="bs">
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
    <li>Test</li>
</ul>

关于javascript - 动态添加图像到列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51095701/

相关文章:

javascript - 谷歌地图根据窗口调整大小设置不同的缩放比例

JavaScript——类型转换

javascript - 谷歌地图未加载

javascript - 在前一个元素之前插入当前元素

javascript - 如果文本包含特定文本,则删除一些 <li>

javascript - 在 D3.js 中舍入日期刻度的最简单方法

javascript - Vuejs如何按多个元素进行过滤

jQuery - 如何使用 load() 每一分钟自动加载内容

javascript - 标记搜索的文本并从结果跳转到结果

javascript - jQuery scrollTo 插件在 Chrome 但不是 Firefox 中跳转到页面顶部