2014-02-09 75 views
1

初次使用Javascript。如何在某個「p class」中搜索頁面中的文本並單擊它旁邊的href鏈接?試圖創建一個Chrome擴展程序,該擴展程序將在新標籤頁中打開Twitter鏈接。我有一個基本的擴展,但卡在這裏。任何幫助是極大的讚賞。JavaScript在Chrome中根據關鍵字文本查找href信息

我如何從推文中找到提及愛國者(或任何關鍵字)的第一個href?

HTML鳴叫的:

<p class="js-tweet-text tweet-text"> 
'No chance' Patriots franchise tag Aqib Talib 
<a href="http://t.co/6dV3EHg5WU" rel="nofollow" dir="ltr" data-expanded-url="http://dlvr.it/4tsL8d" class="twitter-timeline-link" target="_blank" title="http://dlvr.it/4tsL8d"> 
<span class="tco-ellipsis"></span> 
<span class="invisible">http://</span> 
<span class="js-display-url">dlvr.it/4tsL8d</span> 
<span class="invisible"></span> 
<span class="tco-ellipsis">_</span> 
</span></a></p> 
+0

你調用任何外部庫如jQuery? – Duniyadnd

+0

使用jQuery這確實會容易得多。沒有它,你幾乎需要正則表達式或冗長的dom操作語法。 – Qqwy

+0

感謝您的回覆 - Chrome擴展程序中Javascript/JQuery非常新穎。 @qqwy – user3290801

回答

0

您可以使用querySelectorAll()找到的物品進行搜索,自己做內容搜索,然後按照DOM來從下一個鏈接中的href:

在你的HTML
function findTextAndClick(findText) { 
    var items = document.querySelectorAll(".tweet-text"); 
    for (var i = 0; i < items.length; i++) { 
     var text = items[i].textContent || items[i].innerText; 
     if (text.indexOf(findText) >= 0) { 
      var links = items[i].querySelectorAll("a"); 
      if (links.length) { 
       window.location = links[0].href; 
       return; 
      } 
     } 
    } 
} 

使用範例:

findTextAndClick("Patriots");