我有一個Greasemonkey的腳本,它是檢查它有兩個包含在其內A HREF覈實。
我試圖將目標第二個HREF獲取場地ID字符串,但我不知道如何使用RegEx正確定位它(因爲RegEx總是在我的頭上)。
第二A HREF作爲目標去如下:
<a href="/venue/X">Venue name</a>
- 其中x是所述場地的數值ID。
HTML例如
<div class="boxContainer">
<div class="content">
<h3><img src="https://4sqstatic.s3.amazonaws.com/img/crown-a90b8cffe95be2f88fb5b1c203313a3d.png" height="25" width="25" alt="crown" /><strong><a href="/braskic">Andrew Braskic</a></strong> @ <a href="/venue/4314657">Ascot Car Park</a></h3>
</div>
</div>
代碼到目前爲止
的目標正在於VAR venueID做的,感謝我的可憐的正則表達式的知識,我不知道如何僅獲得第二個HREF(下面的示例從第一個HREF獲取信息 - 請參閱上面的HTML示例以查看DIV中的第一個HREF):
var SearchFriendLinks = $("div.boxContainer div.content > a");
SearchFriendLinks.each (function() {
var jThis = $(this);
var venueID = jThis.attr ('href').replace (/\D+(\d+)$/, '$1');
jThis.parent().append (' (' + venueID + ') ');
jThis.parent().append ('<a href="/venue/' + venueID + '/edit">Manage venue</a>');
jThis.parent().append (' | ');
jThis.parent().append ('<a href="/edit_venue?vid=' + venueID + '">Edit venue</a>');
});
GM_addStyle ((<><![CDATA[
div.FriendResult div.name > a + a
{
font-size: 0.7em;
margin-left: 2em;
}
]]></>).toString());
這個答案將工作 - AFAICS - 但它是從OP的起始代碼倒退。一些問題:(1)保持單獨的鏈接變量。這有助於調試,如果OP想要使代碼功能化(DRY範例)。 (2)對於目標網站來說,過寬的選擇符*可能是可以的,但最常見的情況是,它會導致誤報,並且很難針對不同情況調整響應。 (3)注意OP的代碼將優雅地失敗。但是,通過這種方式使用'match()'會導致腳本在頁面更改或誤報時發生崩潰。 –
@Brock Adams - 那些評論很棒。我已經更新了我的代碼。讓我知道是否有其他事情吸引你的目光。 :) –
那麼,既然你遵循我的建議,我必須+1。 ;) –