2017-06-19 78 views
0

是否可以選擇元素First而不是SecondCSS選擇非常直接的孩子

<p> <code>first</code> </p> 
<p> Text <code>second</code> Text </p> 

我打算選擇<code>當其<p>但沒有<p>

內容(除空格),我想這樣做沒有JS,如果它是不可能的,這也將是一個答案,如果孩子其解釋

+0

我會說..你需要爲這個CSS和Javascript的組合。 。所以想法是選擇所有具有'code'標籤作爲直接孩子的'p'標籤,然後過濾其中'p'標籤的'text'屬性爲空的那一次。 –

+0

凡投降 者,都要評論原因。 –

+1

@VijayKumarB - https://meta.stackoverflow.com/questions/250177/require-a-comment-explaining-the-reason-for-the-first-downvote-on-a-question – Quentin

回答

0

可以使用jQuery中的過濾器做到這一點:

$('p').filter(function() { 

    var nodetoCheck = $(this).contents()[0]; 
    if ($(this).contents()[0].nodeValue.trim() === '') { 
    nodetoCheck = $(this).contents()[1]; 
    } 

    if (nodetoCheck.nodeType === 1) { 
    return true; 
    } 
}).addClass('selected'); 

的jsfiddle例子:https://jsfiddle.net/jennifergoncalves/eywk7b53/1/

0

p:first-child > code { 
 
    color:#fff; 
 
    background:tomato; 
 
}
<p> <code>first</code> </p> 
 
<p> Text <code>second</code> Text </p>

還包括小提琴代碼,如果你用jQuery做

Working fiddle

+0

謝謝,但我想用CSS做或我不會這樣做 - 與JS造型很髒 – Asara

+0

好吧,我正在編輯我的答案 – LKG

+0

檢查更新答案 – LKG