b.apply不是一个功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了b.apply不是一个功能相关的知识,希望对你有一定的参考价值。

我有一个AngularJS表单,我有限制不编辑已经开发的代码,现在我必须为表单的每个字段添加预先填充的默认值。

我正在尝试选择表格

var x  = $(".form-group");

循环遍历每个子元素的表单

var x  = $(".form-group")
$(x).each((index, value) => console.log(value.children))

我将默认值放入数组

var defaulttext = ["a", "b", "c", "d", "e", "f"];

然后将值分配给字段

$(value.children).val(value);

以下是完整代码:

var x  = $(".form-group");
var defaulttext = ["yogeesh", "yogeesh@gmail.com", "88616649678"];

$(x).each(defaulttext , function (index, value){
  $(element.children).val(defaulttext[index]);
});
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
<form>

    <div class="form-group">
      <label for="inputdefault">Name</label>
      <input class="form-control" id="inputdefault" type="text">
    </div>
    
    <div class="form-group">
      <label for="inputlg">Email ID</label>
      <input class="form-control input-lg" id="inputlg" type="text">
    </div>
 
     <div class="form-group">
      <label for="inputlg">Phone Number</label>
      <input class="form-control input-lg" id="inputlg" type="text">
    </div>
    
  </form>
</div>

</body>
</html>

但我在控制台中收到错误:b.apply不是一个函数

答案

看起来你正试图混合两件事:

$(x).each(callback)

它迭代$(x)中的DOM元素,和

$.each(defaulttext, callback)

迭代数组。你不能在一个电话中同时做这两件事。

$(x).each()只接受一个参数,一个回调函数。你不能在函数之前放置defaulttext,它会尝试使用该数组作为回调。

但是,回调的第一个参数是索引,因此您可以使用它来引用您想要访问的其他内容。

var x = $(".form-group");
var defaulttext = ["yogeesh", "yogeesh@gmail.com", "88616649678"];

$(x).each(function(index, value) {
  $(value).children().val(defaulttext[index]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>

  <div class="form-group">
    <label for="inputdefault">Name</label>
    <input class="form-control" id="inputdefault" type="text">
  </div>

  <div class="form-group">
    <label for="inputlg">Email ID</label>
    <input class="form-control input-lg" id="inputlg" type="text">
  </div>

  <div class="form-group">
    <label for="inputlg">Phone Number</label>
    <input class="form-control input-lg" id="inputlg" type="text">
  </div>

</form>

以上是关于b.apply不是一个功能的主要内容,如果未能解决你的问题,请参考以下文章

缺少 SQL SERVER 2014 代码片段

如何在 PagerAdapter 中返回多个片段(不是 FragmentPagerAdapter)

是否可以使用“call”或“apply”将参数数组一次传递给多个函数?

apply()方法和call()方法

JS中 call和apply的区别和作用

call和apply的区别