循环遍历对象以从HTML粘贴剪辑中获取值并更新表单输入值

时间:2017-03-08 12:07:44

标签: javascript jquery html

我正在尝试解析第三方网站的预订详情,以帮助我们在本地系统上填写预订表格。

所以我打算从第三方网站复制预订详细信息,然后粘贴到textarea,然后让一些客户端脚本将相关数据拉出来填充我们的表单。

我有一个小提琴:http://jsfiddle.net/eh8eq9e4/5/

所以我在JS中的这一行遇到了麻烦:

$.each(bookingComTargets, function(key, target) {
    $("." + target).val(text("#" + jey).html());
});

它应该从粘贴的数据(现在是div id“out”)中提取值,然后相应地更新输入值。

一些陷阱:

粘贴的HTML只提供类,在大多数情况下,这很好,因为我可以获得所需的数据,但我需要再次遍历地址行,因为它有倍数。

在小提琴的JS部分,你会发现一个粘贴剪辑的例子

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

<强> Updated fiddle

发布的代码中有两个拼写错误,首先jey未定义,应该是key

("#" + jey).html()
_______^

应该是:

("#" + key).html()

第二个你应该用text替换$

text("#" + key).html()
^^^^

应该是:

$("#" + key).html()

完整代码:

$.each(bookingComTargets, function(key, target) {
    $("." + target).val($("#" + key).html());
});

希望这有帮助。

var bookingComTargets = {
  name: "reservation-guest-name",
  email: "js-guest-email",
  address: "info-booking-address",
  telephone: "info-booking-phone"
};

$("textarea").on("input propertychange", function() {
  $("#out").html($("textarea").val());

  $.each(bookingComTargets, function(key, target) {
    $("." + target).val($("#" + key).html());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <input name="telephone" id="telephone" placeholder="tel" />
  <input name="email" id="email" placeholder="email" />
</div>
<div>
  <textarea rows="4" cols="50"></textarea>
</div>
<div id="out"></div>