2011-03-26 23 views
0

當創建一個小部件,WordPress的把一個WordPress的小工具:刪除多餘的div

<div class="typewidget"> 

周圍的部件。我想在不編輯wp-includes/default-widgets.php文件的情況下刪除這些額外的div。

在我的主題的index.php,我使用:

<ul> 
<?php if (!function_exists('dynamic_sidebar') 
|| !dynamic_sidebar('widgetname')) : ?> 
<?php endif; ?> 
</ul> 

然後,在functions.php中:

register_sidebar(array(
'name' => 'widgetname', 
'before_widget' => '<li>', 
'after_widget' => '</li>', 
)); 

,這表明在該網站:

<ul> 
<li> 
<div class="textwidget"><strong><a href="#">musica</a></strong> <a href="#">Lorem ipsum dolor sit amet dolor sit am.</a></div> 
</li> 
</ul> 

有任何想法嗎?謝謝。

回答

0

像下面這樣的東西可能會起作用。

var stuff_in_div = document.getElementById("typewidget").innerHTML; 

stuff_in_div.parentNode.removeChild("typewidget"); 

,然後如果你給< LI>像 「目標」 的ID,你可以只推stuff_in_div在那裏:

document.getElementById("target").innerHTML = stuff_in_div; 

這個問題似乎合理?

安迪

+0

這很酷,Andbdrew,但我需要一個解決方案,而不是IDS的類,因爲我會用很多元素,而不是每頁一個。你知道如何適應你的解決方案嗎? – 2011-03-26 01:39:33

+0

對不起= D我誤解了你原來的帖子,並認爲div有一個「typewidget」的ID。我的壞 – Andbdrew 2011-03-26 02:05:14

0

怎麼樣使用類似:

var stuff = document.getElementsByTagName("div"); 

for (i=0, i<stuff.length, i++) { 

    if (stuff[i].className=='typewidget') { 

     var stuff_in_div = stuff[i].innerHTML; 
     stuff[i].parentNode.innerHTML=stuff_in_div; 

    } 

} 

看起來這可能會奏效。你怎麼看?

Andy

1

一位朋友剛剛幫我解決問題,我解決了這個問題。

裝載的jQuery後:

var cnt = $(".textwidget").contents() 
$(".textwidget").replaceWith(cnt); 

.textwidget是額外的div類。它根據WordPress中的每種類型的部件而有所不同。

+0

事實上,這打破了設計的一些部分。 ¬¬ – 2011-03-29 05:13:43