如何获取/触发列表项中的最后一个锚点

时间:2015-08-18 11:28:00

标签: jquery html dom

源:

<li>
<p>html html html <a>
<p>html html
<a>
</li>

我有一些带有段落的列表项目,在最后一段之后总是有一个链接。想法是触发最后一个锚

(&#39; a:last&#39;)无法正常工作

代码:

$(somelink).on('click', this, function(e){
      e.preventDefault();
      loadArticlePage($(this));
  });

function loadArticlePage(thisObj){
  setTimeout(function(){
    thisObj.closest('li').find('a:last')[0].click();
},1500);
}

现在它仍在触发dom中的第一个锚点 最近的方法用于查找html的正确部分。 当我点击某些链接&#39;

时会呈现html
example
<li>
<somelink>
<dataholder>
</li>

当您点击somelink

时,数据持有者将填充数据(请参阅顶部)

1 个答案:

答案 0 :(得分:1)

你可以这样做:

$('ul li > a:last').trigger('click');

此处li > a仅定位lip的儿童$('li > a:last').css('color', 'red');而非幼儿。

这里有一个小测试:

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
  <p><a href='#'>grand-child of li and child of "p"</a></p>
  <a href='#'>child of li</a>
  </li>
</ul>
&#13;
$('ul li').on('click', function(){
     $(this).find('> a:last').trigger('click');
});
&#13;
&#13;
&#13;

更新

@Component
public class XUtility {


    private Map<String, List<String>> xcache = new ArrayList<String>();


     // this method is being called only after login
    public void initX_Cache(String key) {
         if (xcache.containsKey(key)) {
             xcache.remove(key);
         }
    }
    // this method is called many times from service A,B,C..
    public List<String> getX(String key) {

        List<String> values = xcache.get(key);
        if (values != null) {
            return values;
        }
        List<String> vals = new ArrayList<String>();


        //daos = call the Database ... 

        for (DAOObeject dao : daos) {
            vals.add(dao.getKey());
        }
        xcache.put(key, vals); // save in cache the
        return vals;
    }


}