0

我的输入有问题。

这是我的 html/php 代码:

$dotation = ($ig["dotation"]) ? $ig["dotation"]: '<input type="text" class="datepickerIG" name="igDota" size="8" value="test"/>';
            $bo .= '<tr style="background-color: black;">
                     <td class="dot">' . $dotation . '</td>
                     <td class="modif" ref="' . $ig["id"] . '"><a href="#">Modifier</a></td>

这是我的js代码:

        var dot_cha = $(this).parent().find('.dot').val();

我的问题是,为什么 var dot_cha 总是空的?!当我使用 .html 而不是 .val 时,我是对的,那么我的错误在哪里?

谢谢。

4

7 回答 7

3

.val() 获取输入元素的值属性。“.dot”是一个 td,没有价值属性。

您希望 dot_cha 到底是什么?如果它是您所追求的输入,这将起作用。

$(this).parent().find('.datepickerIG').val();

如果它是 td 的文本 .html() 或 .text() 会给你这个。

于 2012-11-30T09:49:34.253 回答
1

valinput检索具有此属性的标签的值和其他标签。在您的情况下,.dot是没有属性的表行的类value...所以您必须使用.text()or .html()

于 2012-11-30T09:50:23.113 回答
0

jQuery API 文档

.val() 方法主要用于获取表单元素的值,例如input,selecttextarea

val用于表单元素。因为.dot是一个td元素(不是表单元素)val在它上面使用是行不通的。要获取表单元素以外的任何元素的内容,请使用.html.text

于 2012-11-30T09:52:06.983 回答
0

我会说问题是<td>没有值,它包含 HTML。

这就是 .html 有效而 .val 无效的原因。

您在具有值的输入上使用 .val,但<td>它不是输入,它只是一个 HTML 标记。

于 2012-11-30T09:49:18.083 回答
0

val()将与表单元素(例如inputtextarea)一起使用,而不是与元素一起使用。

您需要获取元素的innerHTMLor innerText

就像是:

var dot_cha = $(this).parent().find('.dot').text();

尽管您需要确保拥有一个元素 - 因为您可能会获得一组元素。

于 2012-11-30T09:49:24.263 回答
0

文档

.val() 方法主要用于获取输入、选择和文本区域等表单元素的值。在元素的情况下, .val() 方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回 null。

于 2012-11-30T09:49:25.277 回答
0

这里的医生

.val() 方法主要用于获取输入、选择和文本区域等表单元素的值。

你是对的 .html 有效,因为在你的情况下你有一个 td,你应该使用

$(".dot").html()

希望能帮助到你

于 2012-11-30T10:02:52.347 回答