我正在尝试编写一些javascript来获取li元素的内部文本(1-16)并将它们放入隐藏字段中。
var myValue9 = document.getElementById("fileName9").value;
oForm.elements["fileName9"].value = myValue9;
<input name="fileName9" type="hidden" id="fileName9" />
<li id="wavName9"> Some Text </li>
如何在<li>
之间返回文本并将其放入隐藏字段?
答案 0 :(得分:3)
简单的JavaScript:
document.getElementById("fileName9").value = document.getElementById("wavName9").innerText;
在这种情况下,您也可以使用innerHTML,但这也可以为您提供元素包含的HTML。
答案 1 :(得分:1)
LI标签没有.value
属性。使用普通的javascript,你可以这样做:
oForm.elements["fileName9"].value = document.getElementById("wavName9").innerHTML;
或者,要从1到16执行所有这些操作,您可以使用此循环:
for (var i = 1; i <= 16; i++) {
oForm.elements["fileName" + i].value = document.getElementById("wavName" + i).innerHTML;
}
或者既然您也为jQuery标记了帖子,使用jQuery就可以这样做:
$("#fileName9").val($("#wavName9").text());
或者,从1到16完成所有这些:
for (var i = 1; i <= 16; i++) {
$("#fileName" + i).val($("#wavName" + i).text());
}
答案 2 :(得分:0)
使用jQuery来完成它。
var myvar = $("#wavName9").html()
答案 3 :(得分:0)
使用jQuery:
$('#fileName9').val($('#wavName9').text());
请注意,您可以将.text()
更改为。html()
以返回HTML结构,而不仅仅是文本。
您可以为多个<li>
自动执行此操作:
$('li[id^="wavName"]').each(function () {
var number = this.id.replace('waveName', '');
$('#fileName' + number).val($(this).text());
});
这将选择以“wavName”开头的所有<li>
,并将文本存储在隐藏输入中的<li>
标记中,其id以“fileName”开头,并以与<li>
代码。
答案 4 :(得分:0)
我认为这将适用于所有李的
$("li[id^=wavName]").each(function(){
var $this = $(this);
$this.closest("input[id^=fileName]").val($this.text())
});
答案 5 :(得分:0)
使用以下结构创建你的li的id:listitem-n,其中n是1-16,输入字段遵循相同的结构hiddeninputs-n(n = 1-16)
使用jfriend00的代码,将其添加到循环中,该循环将遍历16次,递增计数变量,用于将数据从列表项传输到隐藏输入
var count = 0;
for( i=0; i < 16; i++){
count ++;
$("form #hiddeninput-"+count).val($("#listitem-"+count).text());
}
更好地验证代码,但有一般的想法。
您还可以从头开始在javascript中创建隐藏字段,这样可以使代码更加稳定IMO,因为执行js时,表单中隐藏字段丢失的可能性较小。