2011-02-25 231 views
1

我在我的网站上有一个表格,其中包含不同产品的选项。电子商务平台并没有把它放在那里。它在表中列出了一行中的选项。该表是这样的:动态关闭并打开表格行

<div class="attributes"> 
    <table> 
     <tbody> 
      <tr> 
       <td>Size:</td> 
       <td>&nbsp;</td> 
       <td><select><option>Sizes here</option></select></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

然后,如果有另一种选择这将是一个额外的行具有相同的标记。

这使得在<select>框前带有标签(在这种情况下为大小)。我想要<select>框上方的标签,我想最简单的方法就是关闭<tr>并打开一个新框。任何想法如何做到这一点?

编辑:我要提的是,电子商务平台生成HTML和我没有访问源代码

+0

你能修改HTML? – esdot 2011-02-25 19:54:39

+0

@esdot没有源代码不对我提供 – heymrcarter 2011-02-25 20:03:44

+0

那你能做什么呢?你似乎已经说明了你的问题没有任何可能的解决方案,因为你不能修改任何东西... – Sam 2011-02-25 20:18:39

回答

1

假设可以得出确切结构,试试这个:

$(".attributes select").each(function(){ 
    $label = $(this).parent().prev().prev(); 
    $label.parent().before("<tr></tr>"); 
    $label.parent().prev().append($label.clone()); 
    $label.remove(); 
    $(this).parent().prev().remove(); 
}); 

下面是一个例子:Demo

+0

,这正是我所期待的。谢谢你,你已经救了我几小时的头发拉! – heymrcarter 2011-02-25 21:29:52

0

像这样吗?

<div class="attributes"> 
    <table> 
     <tbody> 
      <tr> 
       <td>Size:</td> 
      </tr> 
      <tr> 
       <td><select><option>Sizes here</option></select></td> 
      </tr> 
     </tbody> 
    </table> 
</div> 
+0

多数民众赞成多数民众赞成什么我想最终的HTML,是的,但它不像只是重新编码的HTML。电子商务平台从数据库生成此代码,我无权访问源代码 – heymrcarter 2011-02-25 20:05:39

0

我认为你必须做的两个步骤:

  1. 删除元素:
$('.attributes').find('tr:first-child').remove(); 

$('.attributes').find('tr:first-child').remove(); 

2.append他们回到同一个地方

$('.attributes').find('tr:first-child').before('<tr><td>Sizes here</td></tr>');