在我的html文件中,我将#book1#book2等作为div。
我正在尝试设置它,以便我可以为每个产品调用函数(addToPage)并传入我的对象(book1),它会将我的产品信息放到页面上。任何帮助表示赞赏!
var book1 = {
name:'name of book',
author:'name of author'
}
//////////// THIS WORKS
function addToPage(productId) {
$('#book1 .name').text(productId.name);
$('#book1 .author').text(productId.author);
}
addToPage(book1)
/////////// THIS DOESN'T WORK / CAN YOU TELL ME WHY?
function addToPage(productId) {
$('#productId .name').text(productId.name);
$('#productId .author').text(productId.author);
}
addToPage(book1)
答案 0 :(得分:0)
你正在传递一个物体。因此变量不会作为参数的一部分。
使用
var book1 = {
id: 'book1',
name: 'name of book',
author: 'name of author'
}
function addToPage(product) {
$('#' + product.id + ' .name').text(product.name);
$('#' + product.id + ' .author').text(product.author);
}
addToPage(book1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="book1">
<p class="name"></p>
<p class="author"></p>
</div>
&#13;
我相信您的HTML中包含book1
和book2
等元素。但是你的jQuery选择器正在寻找id productId
的元素。您需要将其替换为您传入的变量,以便进行正确的选择。