Javascript - 通过ID </li>获取<li>之间的文本

时间:2011-10-11 20:00:56

标签: javascript jquery

我正在尝试编写一些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>之间返回文本并将其放入隐藏字段?

6 个答案:

答案 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时,表单中隐藏字段丢失的可能性较小。