获取所有列表项的属性并将它们添加到输入中
Get attribute of all list items and add them to input
我有一个这样的列表:
<ul class="draggable">
<li data-bullet="1"> item 1</li>
<li data-bullet="2"> item 2</li>
<li data-bullet="3"> item 3</li>
</ul>
使用javascript,我如何获取所有列表项属性data-bullet
并将它们插入到输入的值中(用逗号分隔):
<input id="insertme" type="hidden" name="bullet" value="">
因此,最终结果将是:
<input id="insertme" type="hidden" name="bullet" value="1,2,3">
我知道如何获取单独的列表项,但无法理解如何获取所有列表项并将其插入其中。
给你,一个纯javascript解决方案
尝试在这种情况下使用dataset
,
var res = "";
[].forEach.bind(document.querySelectorAll(
'.draggable > li[data-bullet]'),function(itm, i){
res += ((i) ? ":" : "") + itm.dataset.bullet;
})();
document.getElementById("insertme").value = res;
演示
或者不那么复杂和可读的版本,
var elemArray = Array.from(document.querySelectorAll('.draggable > li[data-bullet]')),
res ="";
elemArray.forEach(function(){
res += ((i) ? ":" : "") + itm.dataset.bullet;
});
document.getElementById("insertme").value = res;
根据您的新要求,您可以通过完成您的任务
$("button").click(function() {
var parent = $(this).parent();
parent.closest(".draggable").next(":text").val(parent.siblings("li").addBack().map(function(){
return $(this).data("bullet")
}).get().join(":"));
});
演示
尝试
var allBullets = [];
$(".draggable li").each(function(){
allBullets.push($(this).attr("data-bullet"));
});
$("#insertme").val(allBullets.join(","));
如果可以使用querySelectorAll查找元素,然后使用getAttribute方法进行映射。例如(ES6语法):
const items = document.querySelectorAll('.draggable li');
const result = [...items].map(el => el.getAttribute('data-bullet')).join();
document.getElementById('insertme').value = result;
ES5类比:
var items = document.querySelectorAll('.draggable li');
var result = [].slice.call(items).map(function(el) {
return el.getAttribute('data-bullet');
}).join();
document.getElementById('insertme').value = result;
相关文章:
- Jquery添加输入字段和日期选择器
- 为提交文本区域添加输入
- jQuery动态使用.append()添加输入,但发布表单不是追加数据
- 动态jQuery不在.append()之后发布表单的添加输入
- 将Overlay添加到弹出窗口并添加输入类型字段以退出表单
- 使用按钮动态添加输入字段,而不删除唯一字段上的按钮
- 使用codeigniter动态添加输入字段
- mongodb用户配置文件添加输入时出现问题
- 动态添加输入字段,但字段是由外部PHP函数生成的
- 如何添加输入值
- 在填充另一个输入框时动态添加输入框
- 如何通过Jquery点击链接添加输入
- 添加输入onclickjQuery与PHP相关
- 在Rails中使用Javascript添加输入字段
- 如何创建带有rails的按钮,用javascript添加输入字段
- 拖放区插件为每个上传的图像添加输入
- 下拉以在选择“其他”时添加输入
- 如何使用jQuery添加输入字段并将Ajax调用到新的输入字段中
- 如何使用 Angular.js/Javascript 为 url 添加输入字段验证
- 在点击时动态添加输入元素