2011-12-21 95 views

回答

10

您可以使用has來縮小集中的所有p元素,那些含有img元素,然後用css更改屬性:

$("p").has("img").css({textAlign: "center"}); 

或者,你可以使用:has選擇:

$("p:has(img)").css({textAlign: "center"}); 

然而,.has方法比選擇更快。

+0

這是完美的,是絕對得到了完成任務!非常感謝你的幫助。 jQuery是我學習路徑的下一個焦點。 – Brock 2011-12-21 22:44:59

+0

沒問題,很高興我可以幫助:) – 2011-12-21 22:45:25

+0

你對'.has()'的運行速度是絕對正確的:http://jsperf.com/selectorcomparisons,但對於SLaks來說,它的速度是最快的。 – 2011-12-21 22:49:10

1
$('img').closest('p').css('text-align', 'center'); 
2

使用jQuery:

$('p:has("img")').css('text-align','center'); 

只是因爲我跑這通過JS Perf,我想我會發佈一個簡單的JS版本(即,在Chromium 14/Ubuntu的11.04,是最快的方法來解決問題):

var imgs = document.getElementsByTagName('img'); 
for (var i=0,len=imgs.length; i<len; i++){ 
    if (imgs[i].parentNode.tagName.toLowerCase() == 'p'){ 
     imgs[i].parentNode.style.textAlign = 'center'; 
    } 
} 

Along with a JS Fiddle

參考文獻: