使用Javascript从HTML表中获取字段
Grabbing a field from an HTML Table with Javascript
我正在构建一个从存储过程动态填充的web表单。这是一个带有下拉列表、文本框和一个标签的表。我可以成功地从下拉列表和文本框中获取数据,但无法从标签中获取数据。以下是填充表的数据部分的代码。
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><select name='select_" + count + "'><option value='Pending'>Pending</option><option value='Approve'>Approve</option><option value='Deny'>Deny</option></select></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><input type='text' name='comments_" + count + "' /></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + locationNum + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + shipToNum + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + address + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + city + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + state + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + zip + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + soldToName + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + exemptionDescription + "</td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'><label for='select_" + count + "' name='label_" + count + "'>" + exemptionRequestDetailID + "<label></td>");
sb.Append("<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + reason + "</td>");
下面的代码从aspx页面的表中获取所需的数据,并将其发送到codeehind进行操作。
function SendForm() {
var count = 0;
var elLength = form1.elements.length;
for (i = 0; i < elLength; i++) {
var type = form1.elements[i].type;
alert(type);
if ((type == "select-one") && (form1.elements[i].value != "Pending")) {
count++
}
}
var data = new Array(count);
var text = new Array(count);
var exempID = new Array(count);
for (i = 0; i < elLength; i++) {
var type = form1.elements[i].type;
if ((type == "select-one") && (form1.elements[i].value != "Pending")) {
data[i] = form1.elements[i].value;
}
if ((type == "text") && ((form1.elements[i-1].value == "Approve") || (form1.elements[i-1].value == "Deny"))) {
text[i] = form1.elements[i].value;
}
if ((type == "label") && ((form1.elements[i-2].value == "Approve") || (form1.elements[i-2].value == "Deny"))) {
alert(form1.elements[i].value);
}
}
PageMethods.SendForm(data, text, OnSucceeded, OnFailed);
}
我设置了警报来检查它是否正在获取标签值,但它根本没有显示标签的任何信息。如有任何帮助,我们将不胜感激。
如果我读对了,你正在寻找这样一个元素的内部文本(下面是locationNum
),而不是标签:
<td style='border-top: 1px solid black; border-left: 1px solid black;'>" + locationNum + "</td>
如果是这种情况,请查看td
元素的firstChild.nodeValue
。
var table_children = document.getElementsByTagName( 'td' );
var x = 0, len = table_children.length;
for( x = 0; x < len; x += 1 ) {
var tag_text = table_children[ x ].firstChild.nodeValue;
alert( tag_text );
}
不需要jQuery。在此处与此代码交互。
给每一行一个唯一的类名。也给你的桌子一个:
sb.Append("<table class='table1'...
sb.Append("<td class='dataRow row1' ......
然后,您可以使用jQuery:轻松地找到表中的所有元素
$('.table1 td').each(function() {
var myClass = $(this).class
selectVal = $(myClass).find('select').val()
textVal = $(myClass).find('input').val()
labelVal = $(myClass).find('label').html()
...your other logic ...
})
label
html标签就是一个标签。它不像textarea
或select
标记那样具有value
属性。这就是为什么您无法从中获取值。
相关文章:
- 如何获取字段集元素中复选框的所有ID
- Yii2:动态获取字段的 ID
- 用于获取字段属性的JQuery通用工具
- 如何通过javascript使用mongose从mongoDB中获取字段的值
- Angularjs 获取字段数
- 使用 Javascript/jQuery 获取字段的值
- Javascript open.window 获取字段值,然后将值插入父窗口
- 如何在用户键入字段后使用 getElementById 获取字段
- 使用 PHP 或 JavaScript 解析 pdf 表单以获取字段位置
- 从 API 调用中,如何获取字段并查看该值重复了多少次
- 获取字段值的函数-JS
- 当我更改Model Backbone.Marionette时,获取字段的名称
- 按标签时间字段获取字段值,如下所示
- 无法从下划线模板中获取字段
- 从Meteor模板中的字段名称中获取字段值
- 使用jquery中的变量获取字段值
- MongoDb:如何从文档中获取字段(子文档)
- 如何在IE中获取字段长度而不计算占位符文本
- 使用Javascript从HTML表中获取字段
- 从mongoDB获取字段值并分配给var给出未定义