如何动态添加<李>jquery列表中的标记
How to add dynamically <li> tags in jquery list?
现在我可以用脚本将li标记添加到我的列表中。但是如何在.js中的函数中动态添加li标记呢?希望我能看到一个好的例子。下面是我的代码。谢谢
<div data-role="page" id="searchPage" data-theme="b">
<div data-role="content">
<ul data-role="listview" data-filter="true" data-theme="b" id="searchListUl">
</ul>
</div>
<script type="text/javascript">
$("#searchListUl").append('<li data-filtertext="Apple"><a href="#">Apple</a></li>');
$("#searchListUl").listview('refresh');</script></div>
您的函数类似于:
var addItem = function(item){
$("#searchListUl").append('<li data-filtertext="'+item+'"><a href="#">'+item+'</a></li>');
}
您可以用以下方式进行调用:addItem("apple")
如果您使用"dynamic"意味着您希望能够在不知道名称的情况下附加列表项("Apple"),则可以使用用于创建元素的jQuery函数制作一个通用函数:
function add(name) {
var $li = $("<li>").attr("data-filtertext", name)
.appendTo("#searchListUI");
$("<a>").attr("href", "#")
.text(name)
.appendTo($li);
}
您可以按如下方式使用它:
<div data-role="page" id="searchPage" data-theme="b">
<div data-role="content">
<ul data-role="listview" data-filter="true" data-theme="b" id="searchListUl">
</ul>
</div>
<script type="text/javascript">
add("Apple");
$("#searchListUl").listview('refresh');</script></div>
需要注意的是,以其中许多答案中描述的方式使用.append()将直接受到跨站点脚本(XSS)攻击。如果字符串是从可能受到用户影响的数据源中提取的,那么用户可以放入原始HTML,当调用.append()时,原始HTML将直接注入DOM。脚本标记尤其危险。一旦你可以在某人会话中运行任意javascript,攻击者就可以在受害者不知情的情况下获取他们的cookie、私人信息,甚至密码。
始终使用.text()设置元素的文本。在jquery中,.text()会在需要时正确地对字符进行HTMLEncode编码。如果你有SQL的经验,你可以像考虑conn.exec($RANDOM_STRING)一样考虑.append($RANDOM_STRING)。从本质上讲,它们很容易被注入,应该不惜一切代价避免。
我确信这些例子中的代码已经被复制粘贴,现在在互联网上都在使用,这太糟糕了。请把这个词说出来,.append()会附加HTML,而不仅仅是文本,所以不正确的使用会让攻击者将原始HTML注入到您的DOM中。
相关文章:
- 通过点击<李>在jQuery中
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- Jquery在点击<a>标签
- 将jQuery从1.8更新到1.11<a>标记未附加
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 在<头部>使用javascript/jQuery
- JS对象->来自jquery ajax的JSON提交->php迭代
- jQuery只隐藏<tr>在一张桌子上
- jQuery可读性:在<李>要素
- Jquery :gt(value) issue
- jquery仅限<并且>文本框中的符号
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 检查页面范围并提取<h1>内容(如果使用JQuery存在页面)
- 检测活动<李>用于jQuery转盘(分页)
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- jquery 1.8.0语法错误,无法识别的表达式:>
- jQuery复选框(在ul>li下)检查事件
- 硬币滑块jquery-->如何将100%width参数传递给它?似乎只允许图像的像素配置
- 动态显示隐藏表行使用jquery:gt