【问题标题】:Getting Textarea Value with jQuery使用 jQuery 获取 Textarea 值
【发布时间】:2017-01-25 08:54:58
【问题描述】:

这让我发疯 - 为什么我的代码不起作用?

<a id="send-thoughts" href="">Click</a>
<textarea id="#message"></textarea>

            jQuery("a#send-thoughts").click(function() {
                var thought = jQuery("textarea#message").val();
                alert(thought);
            });

警报未定义。

http://jsfiddle.net/q5EXG/

【问题讨论】:

  • 永远不要做$('a#send-thoughts'),只做$('#send-thoughts')。执行前者的性能影响很大,因为 jQuery 将出去并获取页面上的所有锚点,而不是执行最快的选择器:getElementById。
  • 只是为了补充一点,html ids 应该是唯一的......所以在你的选择器中添加a 是多余的。所以请记住,您的页面上只能有一个 #send-thoughts 元素
  • +1 给你,布拉德,马上。此外,锚标记上的 href 属性绝不应该是空字符串。如果您不希望发生任何操作,请将其设置为:&lt;a href="#"&gt;click&lt;/a&gt;,然后在您的点击事件中最后return false;
  • 欣赏提示,先生们。但是,由于某种原因,当我省略 a 时,我的 jQuery 不再工作...... ID 也是唯一的。

标签: jquery


【解决方案1】:

你有id="#message"...应该是id="message"

http://jsfiddle.net/q5EXG/1/

【讨论】:

  • ok ok ok,你在这里是对的......但这是我在 jsfiddle 上写代码时的一个错字
  • 我不会试图解释这个问题的问题所在,而是将您的答案标记为正确并提出一个新问题。感谢您的帮助!
  • 我的意思是,是的,那是我发布的代码中的错误....但在我网站上的实际代码中,不存在该错字,但变量是仍然警告为未定义...可能是由于与其他代码冲突等。感谢您的回答!
  • 你看到我的小提琴了吗?它显然有效。确保您只有一个 ID 为 message 的元素。
【解决方案2】:

通过使用新版本的 jquery (1.8.2),我修改了当前代码,就像在这个链接中一样 http://jsfiddle.net/q5EXG/97/

通过使用相同的代码,我只是从 jQuery 更改为 '$'

<a id="send-thoughts" href="">Click</a>
<textarea id="message"></textarea>

$('#send-thoughts').click(function()
{ var thought = $('#message').val();
  alert(thought);
});

【讨论】:

    【解决方案3】:

    它可以很容易地完成,如下所示:

         <a id="send-thoughts" href="">Click</a>
         <textarea id="message"></textarea>
    
            $("a#send-thoughts").click(function() {
                var thought = $("#message").val();
                alert(thought);
            });
    

    【讨论】:

      【解决方案4】:

      在你的 textarea 元素上将 id="#message" 更改为 id="message"。

      顺便说一句,就用这个吧:

      $('#send-thoughts')
      

      请记住,您应该只使用一次 ID,并且可以反复使用类。

      https://css-tricks.com/the-difference-between-id-and-class/

      【讨论】:

        【解决方案5】:

        试试这个:

        <a id="send-thoughts" href="">Click</a>
        <textarea id="message"></textarea>
        <!--<textarea id="#message"></textarea>-->
        
                    jQuery("a#send-thoughts").click(function() {
                        //var thought = jQuery("textarea#message").val();
                        var thought = $("#message").val();
                        alert(thought);
                    });
        

        【讨论】:

          猜你喜欢
          • 2013-03-22
          • 1970-01-01
          • 2023-03-09
          • 2018-01-12
          • 2011-11-05
          • 1970-01-01
          • 2011-12-15
          • 2015-05-06
          • 2011-12-08
          相关资源
          最近更新 更多