jquery
  • html
  • input
  • 2012-11-30 97 views 0 likes 
    0

    我有一个输入问题。为什么.val()总是空的(Jquery)?

    ,这里是我的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永远是空的?! 当我使用.val确保.val,我得到正确的,我的错误在哪里?

    谢谢。

    +2

    你在哪里调用'VAR dot_cha = ... '因为'this'将引用调用者对象。除'.dot'外没有任何值,因为它是'td'。 – SubRed

    回答

    0

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

    这就是为什么.html工作和.val没有。

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

    0

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

    您需要获取元素的innerHTMLinnerText

    喜欢的东西:

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

    虽然你需要确保你有一个元素 - 因为你可能会得到元素的集合。

    0

    docs

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

    3

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

    你想要dot_cha到底是什么?如果它的输入是你以后的话,那么这将起作用。

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

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

    1

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

    0

    jQuery API documentation

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

    val用于表单元素。由于.dottd元素(它不是表单元素),因此使用val就不起作用。得到任何元素的内容不是一个形式元件以外,使用.html.text

    0

    doc here

    的.VAL()方法主要用于获得形式元素,如输入的值,选择和textarea。

    你是对的。html的工作,因为你的情况,你有一个TD,你应该使用

    $(".dot").html() 
    

    希望它可以帮助

    相关问题