我正在尝试实现this answer中给出的代码。我想进一步简化它,使用closest()
查找最近id
的{{1}}并将其用作位置,但它不起作用 - 我只是得到'未定义'在我的文本框中。
这是脚本:
div
这是(简化)标记:
function updateDetails(date) {
var loc = $(this).closest("div").attr("id");
$('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});
document.getElementById('date').value= date;
document.getElementById('venue').value= loc;
$('#resicheck').attr('disabled', true);
}
我做错了什么?
答案 0 :(得分:0)
你需要通过this
<div id="Philadelphia">
<a href="javascript:updateDetails('20-24 January',this);">20-24 January</a>
</div>
IN JS
function updateDetails(date,this) {
var loc = $(this).closest("div").attr("id");
$('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});
document.getElementById('date').value= date;
document.getElementById('venue').value= loc;
$('#resicheck').attr('disabled', true);
}
并且通过jquery,您可以通过以下非常简单的方式
现在使用html
<div id="Philadelphia">
<a href="#">20-24 January</a>
</div>
在JS中
$("#Philadelphia").on("click","a",function(e){
e.preventDefault();
var date=$(this).text();
var loc = $(this).closest("div").attr("id");
$('#buy-form').animatescroll({scrollSpeed:700,easing:'easeInOutSine'});
$('#date').val(date);
$("#venue").val(loc);
$('#resicheck').attr('disabled', true);
});