2016-02-05 21 views
0

這聽起來像是之前已經問過的問題,但事實上並非如此。我知道如何使用JQuery訪問元素,但在這種情況下,父元素的名稱中有冒號,這使得它變得困難。結構如下:使用JQuery訪問元素中的唯一跨度

<fb:comments class='fb_iframe_widget'> 
    <span>something</span> 
</fb:comments> 

請注意,我需要訪問的跨度沒有ID或類,當我使用常規的JQuery構建它拋出一個錯誤,由於結腸:

var fbspan = $('fb:comments span'); 

如果標籤名稱中不允許冒號,Facebook如何做到這一點?但更重要的是,如何訪問<fb:comments>內的跨度?

+0

確定該元素在DOM仍然存在?我相信FB SDK會將您擁有的源代碼更改爲有效的HTML元素。檢查DOM檢查器以查看實際輸出是什麼。 –

+1

_如果標籤名稱中不允許冒號,Facebook如何做到這一點?_.....可以通過xmlnamespacing來實現。 – Jai

回答

1

您需要避開冒號。目前,jQuery正在嘗試將「註釋」作爲僞元素來讀取。

var fbspan = $('fb\\:comments span'); 

這是fiddle

2

您可以通過使用類,如果能解決你的問題做了,像

$(".fb_iframe_widget").find("span"); 

$(".fb_iframe_widget span"); 
1

使用children()'找到跨度

$("fb\\:comments").children("span") 
1

如果你知道您希望選擇的跨度的索引不會改變,您可以使用.eq()選擇它。

Ex。

$('.fb_iframe_widget').eq(1).css({'color' : 'blue'}) 

https://jsfiddle.net/w37t1wzg/