2016-08-03 26 views
3

我想基於他們的href屬性(使用CSS)隱藏我的頁面上的一些特定的添加。我瀏覽了一些基於其值href隱藏元素的答案。但是,這裏的元素是相當動態的,每次加載頁面時都會改變。有沒有什麼辦法根據其部分href值隱藏元素/錨點?如何隱藏基於部分HREF的元素?

下面是我試圖隱藏的HTML代碼。

代碼:

<div id="union-ad" class="union-banner"> 
<a href="http://someURL?Dynamic_Id's"> 
</div> 

這是我迄今已嘗試。

<style type="text/css"> 
    a[href='someURL']{ display: none } 
    </style> 
+0

是否有任何posiblity添加一些這類標籤你想消失? –

回答

-1

是的,有應該是一個CSS selector

a[href~=someURL] { display: none } 
+1

這隻會匹配包含由空白字符包圍的單詞「someURL」的屬性,因此它可能不會對URL有用。 – TheThirdMan

3

您可以使用*。這會在元素的href屬性中的任意位置查找字符串部分someURL

a[href*="someURL"]{ display: none } 

演示:

a[href*="someURL"]{ 
 
    display: none; 
 
}
<div id="union-ad" class="union-banner"> 
 
    <a href="http://someURL?Dynamic_Id's"> my Link </a> 
 
    <a href="http://some?Dynamic_Id's"> other Link </a> 
 
</div>

JSFiddle

+0

這個問題似乎詢問URL的第一部分總是已知的,所以使用'* ='是有風險的,因爲它可能與純粹的機會匹配任何隨機url - 只要有可能,我寧願'^ =' – TheThirdMan

+0

@TheThirdMan的問題是關於部分字符串href – CMedina

1

你有substring selectors兩種不同的選擇,你應該基於URL的自然選擇。

如果你的URL總是以相同的字符集,包括協議規範開始,然後^=是最好的選擇 - 它只會匹配它的href屬性開始與給定的字符集的元素。這將幾乎消除隨機隱藏其他鏈接的機會,因爲它們隨機包含您的選擇器。

a[href^='http://someURL'] { 
    display: none; 
} 

但是,如果你完全不確定的URL的一致性,只知道在中間的某一部分,使用*=,這將匹配元素包含的字符集的至少一個實例給出。

a[href*='someURL'] { 
    display: none; 
}