【问题标题】:Why .val() is always empty (Jquery)?为什么 .val() 总是空的(Jquery)?
【发布时间】:2012-11-30 09:46:05
【问题描述】:

我的输入有问题。

这是我的 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 时,我得到了正确的结果,我的错误在哪里?

谢谢。

【问题讨论】:

  • 你在哪里调用var dot_cha = ... 因为this 将引用调用者对象。此外.dot 没有任何值,因为它是td

标签: jquery html input


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我会说问题是 &lt;td&gt; 没有值,它包含 HTML。

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

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

      【讨论】:

        【解决方案4】:

        val() 用于表单元素(例如inputtextarea 等...),而不是元素。

        您需要获取元素的innerHTMLinnerText

        类似:

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

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

        【讨论】:

          【解决方案5】:

          来自docs

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

          【讨论】:

            【解决方案6】:

            来自jQuery API documentation

            .val()方法主要用于获取inputselecttextarea等表单元素的值。

            val 用于表单元素。由于.dottd 元素(不是表单元素),因此在其上使用val 将不起作用。要获取表单元素以外的任何元素的内容,请使用.html.text

            【讨论】:

              【解决方案7】:

              doc here

              .val() 方法主要用于获取 input、select 和 textarea 等表单元素的值。

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

              $(".dot").html()
              

              希望对你有帮助

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-05-08
                • 2018-07-04
                • 2020-07-20
                • 2020-07-11
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-06-27
                相关资源
                最近更新 更多