找到具有给定标签的第一个 link 并打开它(用户脚本)

Find the first link with given tag and open it (userscript)

这似乎是一个简单的问题,但我仍然无法找到解决方法。

我想为网上商店编写一个 greasemonkey 用户脚本,当我打开他们的网站时接下来要做什么(基本上是一个项目列表)。

所以当我在这个例子中打开http://mywebsite.com/ I should be redirected immediately to http://mywebsite.com/forsale/100009/。 但我不知道 url 是什么,这就是脚本需要检查 link 的原因。只有我需要的第一场比赛(新项目总是在最前面)。不是旧的(没有新标签)也不是新的项目 under/after 第一个。

这是网站源代码的样子:

<div class="item new "  id="item_0" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100009/">
    <img src="http://mywebsite.com/pics/100009.gif">
    </a>
  </div>
</div>

<div class="item new "  id="item_1" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100007/">
    <img src="http://mywebsite.com/pics/100007.gif">
    </a>
  </div>
</div>

<div class="item  "  id="item_2" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100006/">
    <img src="http://mywebsite.com/pics/100006.gif">
    </a>
  </div>
</div>

<div class="item  "  id="item_3" style="">
  <div class="item_click_overlay">
    <a href="http://mywebsite.com/forsale/100002/">
    <img src="http://mywebsite.com/pics/100002.gif">
    </a>
  </div>
</div>

你的意思是这样的?

var newLink = $( ".item.new:first" ).find('a:first').attr('href');
window.location.replace(newLink);

或者这个没有 jQuery:

var newLink = document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].href;
window.location.replace(newLink);

稍微缩短了 M.D. 的解决方案,张贴在这里,因为这也有效:

document.getElementsByClassName('item new')[0].getElementsByTagName('a')[0].click();