将ID / Class转换为String

时间:2012-02-20 19:26:45

标签: jquery

我在产品销售网站上获得了以下代码。

<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);
});

2 个答案:

答案 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())

    });
});