【问题标题】:What is wrong with my jQuery code? Gives error that it's not a function [closed]我的 jQuery 代码有什么问题?给出它不是函数的错误[关闭]
【发布时间】:2023-03-25 00:24:01
【问题描述】:

我在 Wordpress 中使用它,所以我尝试将 $ 符号更改为 jQuery,但这也没有用。这是脚本:

<script>
    jQuery().ready(function($) {
       var name = $('#user-submitted-posts-wrapper').data('name');
       if ( name != '') $('.usp-title input').eq(0).value(name);
    });
    </script>

我得到了错误:

 $(...).eq(...).value is not a function

可能是什么问题?我正在尝试用我得到的文本预填充输入字段。输入字段有一个名称属性,没有类或 ID 属性。那更好用吗?我做错了什么?

【问题讨论】:

  • 这是.val(name) 不是.value(name)
  • 阅读手册或谷歌错误。
  • 7 反对票,为此?你会认为我做了一件非常非常糟糕的事情。该死的......不是每个人都像你一样擅长 jQuery。获得生活的家伙。

标签: jquery wordpress text input


【解决方案1】:

您将 jQuery 的 val() 方法与 DOM 的 value 属性混淆了;使用 jQuery 对象使用 .val(),使用 DOM 节点使用 .value;它们不可互换。

参考资料:

【讨论】:

    【解决方案2】:

    因为$().valueundefined(不是函数)。

    value 属性属于HTMLInputElement DOM 接口,jQuery objects 没有该名称的任何属性或方法。

    jQuery 对象提供了.val() 方法来设置元素的value 属性:

    $('.usp-title input').eq(0).val(name);
    

    您还可以通过.get 方法从 jQuery 对象中检索 DOM 元素引用,直接获取和设置 DOM 元素属性:

    $('.usp-title input').get(0).value = name;
    $('.usp-title input')[0].value = name; //shorthand form
    

    【讨论】:

      【解决方案3】:

      你需要使用.val方法,而不是.value

      $('.usp-title input').eq(0).val(name);
      

      【讨论】:

        【解决方案4】:
        (function($){
            $(function(){
               var name = $('#user-submitted-posts-wrapper').data('name');
               if (name != '') {
                   $('.usp-title input').eq(0).val(name);
               }
            });
        })(jQuery);
        

        【讨论】:

          【解决方案5】:

          您使用的是.value 而不是.val

          【讨论】:

          • jQuery().ready(...) 完全没问题...
          • 看来你是对的。这不是我学习或使用它的方式,感谢您的提示。
          • 乍得 -- 好的,所以请更改您的答案。
          【解决方案6】:

          Jquery 中没有方法value。您可以使用valattr('value', 'yourvalue')

          【讨论】:

            猜你喜欢
            • 2013-03-06
            • 2013-05-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-22
            • 1970-01-01
            • 2016-07-06
            • 2016-02-27
            相关资源
            最近更新 更多