将breadcrumb与list item匹配并获取它的name属性并放入它自己的href中

时间:2013-09-01 22:43:20

标签: jquery breadcrumbs

我有一组面包屑,每个面包屑的文本都与同名的列表项匹配

Here is the example

到目前为止,我成功了: 1)获取点击链接的文本, 2)将其与相应的列表项匹配 3)最初获取该列表项的名称属性 我遇到的麻烦是将名称属性BACK传递给点击的痕迹链接并将其附加到它的href(用于定位)

为什么我这样做? - 因为每个列表项都会滚动,并且会有几个结果,

用例是让用户单击一行 - 显示面包屑(这在此简化示例中未显示) - 如果用户滚动,他们可以单击面包屑,内容将滚动回那一行。

HTML

<div class="wayfinder"><a href="#">red</a>><a href="#">blue</a>><a href="#">green</a>

</div>
<ul> <a name="1"><li>red</li> </a>
 <a name="2"><li>blue</li> </a>
 <a name="3"><li>green</li> </a>

</ul>

脚本:

//listen on wayfinder specific link

// -I- get text from link clicked:
$('.wayfinder a').click(function () {
    var wayget= $(this).text();
 $(this).addClass('marker');
    alert(wayget);
    var _href = $(this).attr("href"); 
  //pass the attribute to back to the wayfinder  -This part isn't working-
$(this).attr("href", _href + 'listatrr');

    // search list items for matching text mark it red to identify it

$('a li').each(function() {
  if ($(this).text() == wayget) {
      $(this).css('color', 'red');
       $('li').not(this).css('color', 'black');
      //get it's attribute:

       var listatrr= $(this).parent().attr("name");
      alert(listatrr);
      //this produces an error
      //$('.wayfinder a.marker').attr("href", + listatrr);
  } 


});


});

Here is the example

1 个答案:

答案 0 :(得分:0)

以下是我更正的地方:

var listatrr = $(this).parent().attr("name");

//alert(listatrr);
$('.marker').attr("href", _href + listatrr);

这将重置事件:

$('.wayfinder a').mouseup(function () {
    $('.marker').attr("href", '#');
});

<强>更新

Example