在javascript中我有一个div的引用。其中div是一个名为=' foundItem '

的锚元素

如何获取名为 foundItem 的锚点的引用,该锚点位于Div我引用的?

页面上的其他div中有'很多' foundItem 锚点。我需要'这个'DIVs。

有帮助吗?

解决方案

使用jquery,这很容易:

<script type="text/javascript">

$(function(){    
    var item = $("#yourDivId a[name=foundItem]")
)};
</script>

更新

根据评论,如果您可以控制对锚标记的id / name / class的内容,最好将类应用于它们:

<div id="firstDiv">
    <a href="someurl.htm" class="foundItem">test</a>
</div>
<div id="secondDiv">
    <a href="someOtherUrl.htm" class="foundItem">test another one</a>
</div>
<!-- and so forth -->

<script type="text/javascript">

$(function(){    
    var item = $("#firstDiv a.foundItem");
    alert(item.html()); // Will result in "test"

    var item2 = $("#secondDiv a.foundItem");
    alert(item2.html()); // Will show "test another one"

)};
</script>

如果您正在使用javascript做任何事情,jQuery可以节省大量时间,值得投入精力学习。从 http://api.jquery.com/browser/ 开始,了解可能的内容

其他提示

// assuming you're not using jquery or mootools 
// assume div is mydiv
var lst = mydiv.getElementsByTagName('a');
var myanchor;
for(var i=0; i<lst.length; ++i) {
    if(lst[i].name && lst[i].name == 'foundItem') {
        myanchor = lst[i];
        break;
    }
}


// the mootools method
var myanchor = $(mydiv).getElement('a[name=foundItem]');

使用 jQuery 等JavaScript库,节省时间。

var theAnchor = $('#divId a[name=foundItem]');

您可以使用getElementsByTagName方法获取div中的锚元素,然后查找具有正确name属性的元素:

var found = null;
var e = divReference.getElementsByTagName('A');
for (var i=0; i < e.length; i++) {
  if (e[i].name && e[i].name == 'foundItem') {
    found = e[i];
    break;
  }
}

如果 found 不为null,则获得元素。

如果您碰巧使用jQuery库,可以让它进行搜索:

var found = null;
var e = $(divReference).find('a[name=foundItem]');
if (e.length == 1) found = e.get(0);

不确定这是否有帮助,但想要一个函数来动态处理页面的负载并滚动到所选的锚点。

function scrollToAnchor(anchor_val) {

  alert("" + anchor_val);

  var page = document.getElementById('tables');
  var found = null;
  var cnt = 0;
  var e = document.getElementsByTagName('a');

  for (var i = 0; i < e.length; i++) {

    if (e[i].name && e[i].name == anchor_val) {

      found = e[i];

      break;

    }

    cnt++;

  }

  if (found) {

    var nPos = found.offsetTop;

    alert("" + nPos);

    page.scrollBy(0, nPos);

  } else {

    alert('Failed with call of scrollToAnchor()' + cnt);

  }

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top