2014-09-03 94 views
0

工作,我有一個自動生成的佈局看起來像這樣由jQuery.PrettyTextDiff-插件創建:刪除元素是不會用jQuery

<head> 
    <script type="text/jaascript" src="the jquery library"></script> 
</head> 
<body> 
    <div class="diff"> 
     <span> 
      <br/> 
     </span> 
     Continuing layout... 
    </div> 
    <script type="text/javascript" src="diff_match_patch.js"></script> 
    <script type="text/javascript" src="jquery.pretty-text-diff.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('.diff span:first-child').remove(); // As of my last try 
     }); 
    </script> 
</body> 

我要刪除的「diff'佈局中的第一個跨度在運行時,但我不能讓它工作。經過徹底的研究,我已經嘗試了幾個在這裏發現的解決方案。

$('.diff').closest('span').remove(); 
$('.diff span').first().remove(); //recommended solution by the jQuery Foundation - yet it won't work 
$('.diff span').remove(); 
$('.diff').find('span:gt(0)').remove(); 

似乎沒有刪除跨度。我應該如何刪除它?

+0

你有沒有看過JavaScript控制檯與螢火蟲或類似的東西?有沒有錯誤信息? – 2014-09-03 10:02:05

+0

螢火蟲沒有錯誤。但是有理由相信,如下面的一個人所指出的,我必須移除移除事件。我可能試圖在實例化之前將其刪除。那會是......尷尬。 ;) – 2014-09-03 10:06:25

+0

好的 - 我試着將腳本移動到頁面的末尾 - 仍然沒有效果... – 2014-09-03 10:18:37

回答

0

某處我看到一個快速評論,提示我可以使用CSS來解決這個問題 - 所以我做了。它充當魅力。

.diff span { 
    display: none; 
} 
0

你有沒有wrapp jQuery代碼,如:

$(document).ready(function() { 
     $('.diff span').remove(); 
    }); 

這應該工作。

UPDATE: 只刪除第一個孩子做:

$('.diff span:first-child').remove(); 

Fiddle

+0

是的。我所有的jQuery語法都包裝在DOM準備好的內部。 – 2014-09-03 09:55:08

+0

你包含了jQuery庫嗎? – 2014-09-03 09:57:45

+0

是的。每一件事都有效,但這... – 2014-09-03 09:58:55

0

嘗試像這樣...

$('.diff').each(function(){ 
    $(this).find('span').eq(0).remove(); 
}); 
0

您提供應該工作的陳述:

$(".diff").remove("span"); 

fiddle

我相信你所說的代碼是動態生成的。您需要等待渲染並在其後移除span標籤。

您也可以在插件本身修復問題,或者要求庫的作者爲您解決問題。

0

嘗試用這種$(".diff").find("span").html("");

點擊here