2012-10-03 10 views
0

我在我的網站上有一個出現在文章下方的評分框,然後同樣的評分框出現在人們對文章留下的評論中。所以速率框會在頁面上多次出現。我試圖更改顯示在該速率框內的文字,但不幸的是,我沒有在我擁有的網站類型上訪問服務器。所以我需要用腳本來完成。如何訪問某個類的所有實例中的文本,其中包含一個跨度?

我正在使用的小腳本現在可以工作,但它只適用於非常高速的框。然而,我需要改變他們每個人的文字。我正在嘗試將現有的文字改爲「喜歡」。

.SUI-RateBox是div類,我需要更改的文本位於該類的範圍內。我有工作在剛剛一審

的代碼是這樣的:

<script> 
    $(".SUI-RateBox span:contains('Rate')").html("Like"); 
</script> 

我怎樣才能做到這一點,但所有的箱子率。 dom結構位於下面的鏈接。

http://www.spruzstuff.spruz.com/pt/Element-Background-Image/wiki.htm

+2

您可以發佈您的HTML? – Blender

+1

如果你的元素結構是一個可預測的模式,那麼不要使用':contains'。充其量,這是最後的選擇。如果您打算詢問DOM選擇,那麼您確實需要展示DOM的外觀。 –

+0

@ user1689607我會更新帖子。 –

回答

1

我不知道爲什麼你使用#(沒關係,你改變了你的問題的詳細信息),但試試這個:

<script> 
    $(".SUI-RateBox").find("span:contains('Rate')").html("Like"); 
</script> 

http://jsfiddle.net/EhPP7/

+0

哈哈,這是一個錯字。我試圖用.css來測試我在做什麼,只是爲了確保我正確地訪問了一些東西。我粘貼了錯誤的代碼..對不起:) –

+0

這與原來的行爲有什麼不同? –

+0

這似乎仍然只適用於一流的盒子。但在腳本中看起來不是問題。我在HTML中忽略了一些東西。錯誤的警報,並感謝:) –

0

另外,我猜您也可以嘗試.each()來遍歷div.SUI-RateBox中的每個範圍標籤並逐個檢查文本值。

$(document).ready(function() { 
    $("*.SUI-RateBox").each(function(){ 
     var sp = $(this).children("span"); 
     if(sp.text() == 'Rate') 
      sp.text('like');    
    }); 
}); 
​ 

http://jsfiddle.net/cZMFC/1/

還檢查了jQuery .each() API

相關問題