我有以下代码,它将 div#b 加载到 div#a 中,然后对 div#b 执行某些操作:
<html>
<head>
<script src="scripts/jquery.js"></script>
</head>
<body>
<script>
document.addEventListener('DOMContentLoaded', e => {
$('#a').load('test2.html', {},
// function() {
// console.log($('#b').attr('id')); // returns "b"
// $('#b').html('content in #b');
// console.log('completed');
// }
fillB()
);
});
function fillB(option=null) {
console.log($('#b').attr('id'));//returns undefined :(
$('#b').html('content in #b: '+option);
console.log('completed');
}
</script>
<div id="a">placeholder</div>
</body>
</html>
其中 test2.html 包含:
<div id="b"></div>
我的目标是让回调函数(注释掉)改为命名函数 fillB(),以便我可以在其他地方重用代码。但是,当我这样做时,选择器$('#b')
是undefined
. 如何让函数 fillB() 在调用时正确执行选择器?
编辑:我还希望能够控制传递给fillB()
.
你可以这样做。它更短,并且做同样的事情,出错的地方更少
我还将 vanilla load 事件更改为 jQuery 事件
显然我必须在匿名函数中传递命名回调函数: