1

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

这是示例

到目前为止,我成功了:1)获取单击链接的文本,2)将其与相应的列表项匹配 3)最初获取该列表项的名称属性我遇到的问题是将名称属性传递回单击的面包屑链接并将其附加到它的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);
  } 


});


});

这是示例

4

1 回答 1

0

下面是我纠正它的地方:

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

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

这将重置事件:

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

更新

例子

于 2013-09-03T16:06:27.157 回答