我在产品销售网站上获得了以下代码。
<html>
<body>
<div class="descr">
<div id="productName"></div>
</div>
</body>
</html>
#productName
对每种产品都是唯一的(即blackTea,whiteTea,greenTea等等......)
我在#productName_description
内插入了一个ID为#productName
的div。我需要一个脚本来抓取descr:first-child
的ID,将"_description"
添加到最后并将其应用于我正在尝试加载的内容。 Essenssially我正在尝试做的是有一个自动脚本,可以完成所有这些,而不必每个产品编写额外的javascript:
$('#kyoto_matcha').load('https://www.assamteacompany.ca/skin/assam_tea_company/script/product_descriptions.html #kyoto_matcha_description');
这是我得到的最远的。花了几个小时在网上查看这个问题或试图找出解决方案我无法理解。通过console.log()输出时,我不断获得[object Object] _description。这是我最接近的:
$('.descr:first-child').each(function(){
var teaAccessory = $('.descr:first-child').attr('id');
var description = '_description';
$(this).load('https://www.assamteacompany.ca/skin/assam_tea_company/script/product_descriptions.html #' + teaAccessory + description);
});
答案 0 :(得分:0)
我可能会写这样的东西
$('.descr').each(function(){
var teaAccessory = $(this).children().first().attr('id'); // just using $(this).children().attr('id'); should also work
var description = '_description';
$(this).load('https://www.assamteacompany.ca/skin/assam_tea_company/script/product_descriptions.html #' + teaAccessory + description);
});
我想我明白你想改变id属性?这将是代码。
$('.descr').each(function(){
$div = $(this).children().first();
$div.attr('id', $div.attr('id')+'_description');
$div.load('https://www.assamteacompany.ca/skin/assam_tea_company/script/product_descriptions.html #'+$div.attr('id'));
});
答案 1 :(得分:0)
您的代码会在每次出现.descr时通过ajax加载相同的页面 - 可能不是您想要的。此外,我从来没有运气load()。试试这个:
var url = 'https://www.assamteacompany.ca/skin/assam_tea_company/script/product_descriptions.html';
$.get(url, function(data) {
var $description = $(data) // make a jQuery object from the returned data
$('.descr:first-child').each(function(){
// construct the ID to search for
var teaAccessory = $(this).attr('id')+'_description';
// insert the html from the target page
$(this).html($(teaAccessory, $description).html())
});
});