我正在尝试解析第三方网站的预订详情,以帮助我们在本地系统上填写预订表格。
所以我打算从第三方网站复制预订详细信息,然后粘贴到textarea,然后让一些客户端脚本将相关数据拉出来填充我们的表单。
我有一个小提琴:http://jsfiddle.net/eh8eq9e4/5/
所以我在JS中的这一行遇到了麻烦:
$.each(bookingComTargets, function(key, target) {
$("." + target).val(text("#" + jey).html());
});
它应该从粘贴的数据(现在是div id“out”)中提取值,然后相应地更新输入值。
一些陷阱:
粘贴的HTML只提供类,在大多数情况下,这很好,因为我可以获得所需的数据,但我需要再次遍历地址行,因为它有倍数。
在小提琴的JS部分,你会发现一个粘贴剪辑的例子
有什么建议吗?
答案 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>