2010-05-19 58 views
0

我想修改標題欄jquery插件展示,我將<p class='title>添加到描述標籤,以便我可以將css樣式應用於標題並將該部分分隔爲實際描述。 腳本:jquery搜索和應用css樣式

var $a = $("<a />").attr("href", $container.find("a:first").attr("href")).html("<span>" + $container.find("a:first img").attr("alt") + "</span>"); 

var $titleBar = $("<div id='subBar' />").html($a); 

HTML輸出:

<div id="subBar"><span><p class="title">Lorem</p>description here</span></div> 

從上面的結構,我怎樣才能通過jQuery如果<p class='title'>添加CSS是遇到過嗎?我想添加CSS樣式類標題,這是不可能的CSS,因爲這是由JavaScript生成的。

+0

和你的問題是? – SilentGhost 2010-05-19 13:18:28

+0

CSS規則集適用於DOM中匹配的所有內容 - 它們來自JS或HTML並不重要,因此您的語句「不可能用CSS,因爲這是由javascript生成的」是錯誤的。 – Quentin 2010-05-19 14:33:09

+0

您正在嘗試生成無效的DOM。 'p'元素不能是'span'元素的子元素。瀏覽器錯誤更正幾乎肯定會導致不一致的行爲,因爲不同的瀏覽器嘗試以不同的方式從錯誤中恢復,從而導致不一致的行爲。 – Quentin 2010-05-19 14:34:28

回答

2

刪除你選擇的「p」和「.title僞」之間的空間:

$container.find("p.title").css('color','red'); 

(如果那是你的問題)

更新:您的jQuery選擇將仍然正常工作,即使您嘗試訪問的DOM元素由Javascript生成。您可以在瀏覽器的JavaScript控制檯(例如Firebug)中進行測試。您必須確保您的代碼在生成標題元素的代碼之後執行。

但是,您真的需要在這裏使用Javascript嗎?如果你只是想將類'標題'設置爲紅色的段落,只需添加一些CSS:

p.title { color: red; }