对于jQuery,应该删除的widget框内的字段仍然显示

时间:2015-06-17 12:39:17

标签: javascript jquery html widget

所以我有一个小部件可折叠的盒子功能(Metadata Widget),它显示某些字段。我有一个导入按钮,它调用Metadata Widget并显示它。如果我单击导入按钮(在另一个链接上),该元数据小部件中的某些字段将消失(这就是我想要的)。但是,如果我单击实现相同元数据窗口小部件功能的链接,然后单击侧面的导入按钮,该导入窗口中的所有字段将显示我想要的所有字段。

但是在另一个链接上,如果我点击导入按钮,字段就会消失。那么,当我点击导入按钮并且我在链接上显示所有原始字段的Metadata Widget功能时,如何确保我想要的字段保持不变?

我知道这听起来很复杂,但任何帮助都会受到赞赏!谢谢!

<div class = "widgetPanel containerWidgetPanel foldableBox">
    <div class="boxBody">
        <table class="widgetTable containerWidgetTable">
            <tbody>
               <tr>
                  <td class="boldColumn containerLabel">
                  <td class="fieldColumn containerField">
               </tr>
               <tr>
                  <td class="boldColumn containerLabel">
                  <td class="fieldColumn containerField">
               </tr>
               <tr>
                  <td class="boldColumn containerLabel">
                  <td class="fieldColumn containerField">
               </tr>
               .....
           </tbody>
        </table>
    </div>
</div>

在import_box.html文件中,我全局添加了此脚本:

<script type = "text/javascript">
    jQuery( "td.containerLabel" ).eq(0).remove();
    jQuery( "td.containerField" ).eq(0).remove();
    jQuery( "td.containerLabel" ).eq(2).remove();
    jQuery( "td.containerField" ).eq(2).remove();
</script>

2 个答案:

答案 0 :(得分:0)

即使标签不需要关闭标签,我仍然会首先添加。而不是

<td class="boldColumn containerLabel">

<td class="boldColumn containerLabel"></td>

然后尝试在jQuery ready函数中添加你的javascript代码

jQuery(document).ready(function(){
     jQuery( "td.containerLabel" ).eq(0).remove();
     jQuery( "td.containerField" ).eq(0).remove();
     jQuery( "td.containerLabel" ).eq(2).remove();
     jQuery( "td.containerField" ).eq(2).remove();
});

或者检查是否加载了jQuery

if (window.jQuery) {  
       // Your code here
}

答案 1 :(得分:0)

运行这部分代码后:

jQuery( "td.containerLabel" ).eq(0).remove();
jQuery( "td.containerField" ).eq(0).remove();

自从你删除第一个td类后,你将只有2个td类。然后当它需要第二部分:

jQuery( "td.containerLabel" ).eq(2).remove();
jQuery( "td.containerField" ).eq(2).remove();

它将寻找不存在的第三组。

为了达到预期的效果,颠倒删除的顺序,这样做:

jQuery( "td.containerLabel" ).eq(2).remove();
jQuery( "td.containerField" ).eq(2).remove();
jQuery( "td.containerLabel" ).eq(0).remove();
jQuery( "td.containerField" ).eq(0).remove();