根据{{​​3}} </li>的一部分向<li>添加ID

时间:2010-04-26 18:34:53

标签: jquery

我有以下代码:

<li class="zoneName"><a href="/Default.aspx?PageID=4869007">CYKF</a></li>
<li class="zoneName"><a href="/Default.aspx?PageID=4868459">YKA</a></li>

我需要为每个&lt; li>此列表中的标签。我需要该ID作为href字符串末尾的数字。以下是我想要的

<li class="zoneName" id="4869007"><a href="/Default.aspx?PageID=4869007">CYKF</a></li>
<li class="zoneName" id="4868459"><a href="/Default.aspx?PageID=4868459">YKA</a></li>

感谢任何帮助。

5 个答案:

答案 0 :(得分:3)

锚标记中的PageID是否写在服务器端循环中?您是否无法将其修改为将其写入<li>标记?

答案 1 :(得分:1)

如果必须是jQuery,请转到

$("li a").each( function() {
  var match = /PageId=(\d+)$/.exec(this.href);
  if (match) $(this).parent("li")[0].id = match[1];
});

答案 2 :(得分:1)

你可以这样做:

演示:http://jsfiddle.net/qnEAu/

$('ul > li > a').each(function(){
    var element = $(this)
    var tempid = element.attr('href').split('=')
    element.parent('li').attr('id', tempid[tempid.length - 1])
})

请注意,仅将数字用作ID

并不是有效的

答案 3 :(得分:0)

如果href总是只在查询的PageID部分中有整数,并且PageID将是整数查询的唯一部分:

$('li').each( function() {
    var href_val = $(this).children('a').attr('href');
    var regex = '\b[0-9]+\b';
    var new_id = new RegExp(regex, href_val);

    $(this).attr('id', new_id);
});

这只是为了让你开始。使用更高级的正则表达式来实现未来发展。

答案 4 :(得分:0)

$("li>a").each(function(i,el){

    var id = $(this).attr("href").split("=")[1];
    $(this).parent().attr("id", id);

})