2017-02-23 47 views
0

,所以我開玩笑使用jQuery(伊馬小塊)。現在我發現了一些有趣的東西:爲什麼我不能隱藏段標記中的文本。它正常工作時,它就像<section><p>blabla text text</p></section> 我沒有找到任何谷歌。我想用jQuery執行代碼修復它! 問題代碼:JQuery的:在p標記着隱藏部分標籤

$(document).ready(function() { 
 
    $("button").click(function() { 
 
    $("p section").hide(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 

 

 
<h2>This is a heading</h2> 
 

 
<p> 
 
    <section>This is a paragraph.</section> 
 
</p> 
 

 

 
<p>This is another paragraph.</p> 
 

 
<button>Click me to hide paragraphs</button>

預先感謝

+1

'section'不應該是'p'標記的子... –

+0

可能必須看到段落內的段落不是語義的事實。 – kevin

回答

0

問題是<section>不能駐留在<p>標籤內。想想看,一個'部分'不應該存在於'段落'中。您可能正在尋找的是<span>。通過這種方式,你可以樣式段落的部分

$("p > span").hide(); 

<p> 
    <span>This is a paragraph.</span> 
</p> 

我創建了一個工作小提琴展示這種here

希望這會有所幫助! :)沒有嵌套

1

截面可爲任何其他element.Section內自成一體

從HTML5醫生 的部分元素代表一個通用的文檔或應用程序部分...的部分元素不是一個通用的容器元素。當僅僅爲了樣式或爲了方便腳本而需要元素時,鼓勵作者改爲使用div元素。一般規則是,只有元素的內容將在文檔的大綱中明確列出時,section元素纔是合適的。 部分是內容的斑點,你可以存儲爲一個數據庫中的個人記錄。它一般是這樣的(請注意,標題而來的部分元素中,而不是之前立即):

改變你的代碼段爲下面應該工作

$(document).ready(function() { 
 
    $("button").click(function() { 
 
    $("section").hide(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 

 

 
<h2>This is a heading</h2> 
 

 

 
    <section><p>This is a paragraph.</p></section> 
 

 

 

 
<p>This is another paragraph.</p> 
 

 
<button>Click me to hide paragraphs</button>

0

的HTML5規範告訴我們,<p>元素的內容模型是短語內容。

所以纔有了以下標籤可以是<p>標籤內。不一個jquery錯誤;)

一個(如果它僅包含措辭內容),簡稱區(如果它是一個 後代地圖元素的)B音頻BDI BDO BR按鈕畫布舉 代碼命令數據列表刪除(如果它僅包含短語內容)dfn 嵌入iframe img輸入插入(如果它僅包含短語內容) kbd keygen標籤映射(如果它僅包含短語內容)標記數學 計時器無腳本對象輸出進度q ruby​​ s samp腳本選擇 小跨度強子燮SVG textarea的時刻u VAR視頻WBR文本

0

<p> HTML標籤定義了一個段落。

其中有許多其他HTML標籤是不允許的。當前的HTML規範標準,其次是大多數瀏覽器,要求<p>標籤自動關閉,如果在滿足關閉</p>標籤之前遇到任何標籤。

HTML標籤是一個<p>標籤內非法的完整列表可在當前HTML Standard specification for <p> element標籤遺漏下的text/html中找到節,因爲這些標籤會自動關閉<p>標籤。

其結果是,在你的榜樣<section>標籤是不是一個孩子的<p>,因此您jQuery選擇$('p section')不匹配任何東西。