2012-02-18 68 views
0

请在我缺乏该领域知识的情况下将其裸露出来。我试图制作一个脚本来定位第一个孩子,获取其ID并将其应用于将加载+ _description的div的名称。jQuery:将div ID应用于.load ID

我有大约100个产品,并且为每个产品添加一行代码都没有多大帮助。

例如。 试图让这种自动化:

<div class='descr'> 
<div id='productName'> 
<div id='productName_description>This is what needs to be inserted</div> 
</div> 
</div> 



$('#productName').load('https://www.website.com/page.html #productName_description'); 

我得到尽可能:

$('descr:first-child').load('https://www.website.com/page.html ??????'); 

我无法弄清楚如何抽象的“DESCR:第一,孩子的ID,并将其应用‘+ _description’到负载正在调用的div。

在此先感谢。

+1

需要....更多....代码.... – 2012-02-18 01:56:50

+0

更新了我的问题! – 2012-02-18 04:02:31

回答

1

你应该为我们提供更多的代码/信息,但以我的理解,尝试类似的东西:

// Javascript (document.ready) 

$('.descr').each(function(){ 
    var productContainer=$(this).children().attr('id')+'_description'; 
    $('#'+productContainer).load('https://www.website.com/page.html #'+productContainer); 

}); 

编辑关于您的更新

尝试以下操作:

var productContainer=$('.descr:first-child').attr('id')+'_description'; 
$('#'+productContainer).load('https://www.website.com/page.html #'+productContainer); 
+0

刚刚更新了这个问题,以包含我想要了解的更多细节。 – 2012-02-18 04:02:18

+0

更新了我的答案。 – Valky 2012-02-18 13:35:19

-1

据我了解你的问题,你想这个:

$('#productName_description').load('https://www.website.com/page.html ??????'); 

而且你行:

<div id='productName_description> 

应与'在ID的末尾:

<div id='productName_description'> 
+0

ID应该是唯一的,所以如果遇到选择多个元素/描述的问题,请进一步指定您的问题。目前还没有100%清楚你想要什么。 – Smamatti 2012-02-18 13:39:18

-1

根据我的理解,我觉得这可能会解决你的问题。

比方说你的100的产品列举如下:

<div class='descr'> 
    <div id='ipod'> 
     iPod 
    </div> 
    <div id='iphone'> 
     iPhone 
    </div> 
    <div id='ipad'> 
     iPad 
    </div> 
</div>​ 

你击出了一些AJAX网址应返回一些结果(HTML),并根据您的产品名称和载出它提取DOM片段(productname_description)它进入你的产品分区。

$(function() { 
    $('div.descr').children().each (function() { 
    var productDescriptionDOM = '#' + $(this).attr('id') + '_description'; 
     $(this).load('http://jsfiddle.net/echo/html/ '+productDescriptionDOM); 
    });  
});​ 

演示:http://jsfiddle.net/vBxWs/

请注意,该演示将不会加载该产品的描述,因为该请求不返回任何回应。由于不支持演示,因此无法在演示中使用跨网域网址。

+0

你不觉得你复制并粘贴了我的答案吗? – Valky 2012-02-18 14:20:56

+0

@Valky:看起来很相似,但是当我发布我的时候,我没有看到你的答案。 – codef0rmer 2012-02-18 14:25:25

+0

无论如何,只要把我+1所以;-) – Valky 2012-02-18 14:28:03