.val对特定子进程没有返回任何值[JQuery]

时间:2014-09-19 18:15:14

标签: javascript jquery html

我在.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变量似乎总是返回空字符串。

2 个答案:

答案 0 :(得分:5)

.val()用于检索value属性(它是.attr('value')的快捷方式),这只能用于支持此类内容的元素(例如{{1} }},<input /><select>

以下是jQuery Docs关于<textarea>函数的说法:

  

val()方法主要用于获取表单的值   .val()inputselect等元素。如果是   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();