我在.each循环中试图访问一组行中的特定表格单元格(td)。每行有三个单元格,其中包含Id,Name和Practice类。
代码:
@foreach (var client in ViewBag.ClientList.getDatabase())
{
<tr class="ClientRow">
<td class="Id">@client.Id</td>
<td class="Name">@client.getClientName</td>
<td class="Practice">@client.getPracticeID</td>
</tr>
}
//一段时间后尝试从foreach访问
$(".ClientRow").each(function (index) {
var Name = $(this).children(".Name").val();
var ID = $(this).children(".Practice").val();
名称和ID变量似乎总是返回空字符串。
答案 0 :(得分:5)
.val()
用于检索value
属性(它是.attr('value')
的快捷方式),这只能用于支持此类内容的元素(例如{{1} }},<input />
或<select>
。
以下是jQuery Docs关于<textarea>
函数的说法:
val()
方法主要用于获取表单的值.val()
,input
和select
等元素。如果是textarea
个元素,当没有选择任何选项时返回select
包含每个所选选项的值的数组 至少一个,因为null
可以选择更多 属性存在。
要获取元素的multiple
或文字内容,您应该使用.text()
或.html()
。
例如:
innerHTML
$(".ClientRow").each(function (index) {
var Name = $(this).children(".Name").text();
var ID = $(this).children(".Practice").text();
返回元素的实际文本(没有任何HTML)
.text()
将返回元素的.html()
。
答案 1 :(得分:0)
value()用于输入,在您必须使用的情况下:
$(".ClientRow").each(function (index) {
var Name = $(this).children(".Name").text();
var ID = $(this).children(".Practice").text();