Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在Div中查找锚点_Javascript_Html_Find - Fatal编程技术网

使用javascript在Div中查找锚点

使用javascript在Div中查找锚点,javascript,html,find,Javascript,Html,Find,在javascript中,我有一个对div的引用。在该div中,是一个名为“foundItem”的锚元素 我如何获得对我所引用的Div中名为foundItem的锚的引用 页面上的其他div中有'many'foundItem锚定。我需要“this”DIVs one。使用jquery,它非常简单: <script type="text/javascript"> $(function(){ var item = $("#yourDivId a[name=foundItem

在javascript中,我有一个对div的引用。在该div中,是一个名为“foundItem”的锚元素

我如何获得对我所引用的Div中名为foundItem的锚的引用


页面上的其他div中有'many'foundItem锚定。我需要“this”DIVs one。

使用jquery,它非常简单:

<script type="text/javascript">

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

$(函数(){
var item=$(“#yourDivId a[name=foundItem]”)
)};
更新:

根据评论,如果您可以控制如何识别/命名/分类您的锚定标记,那么最好对其应用一个类:

<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>

$(函数(){
var项目=$(“#firstDiv a.foundItem”);
警报(item.html());//将导致“测试”
var item2=$(“#secondDiv a.foundItem”);
警报(item2.html());//将显示“测试另一个”
)};

如果您使用javascript做任何事情,jQuery可以为您节省大量时间,值得投入精力好好学习。从开始介绍可能的内容。

使用类似JavaScript的库,节省时间

var theAnchor = $('#divId a[name=foundItem]');
//假设您没有使用jquery或mootools
//假设div是mydiv
var lst=mydiv.getElementsByTagName('a');
var-myanchor;

对于(var i=0;i您可以使用getElementsByTagName方法获取div中的锚元素,然后查找具有正确名称属性的锚元素:

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;
  }
}

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

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);

  }

}
功能滚动至锚定(锚定值){
警报(““+锚定值”);
var page=document.getElementById('tables');
var-found=null;
var-cnt=0;
var e=document.getElementsByTagName('a');
对于(变量i=0;i
因此,如果我将锚点更改为foundItem的id并使用jQuery,我可以使用:var item=$(“#yourDivId a.foundItem”);是吗?是的,或者您可以只使用
$('foundItem')
,或者不使用jQuery只使用
document.getElementById('foundItem'))
是的,但正如Rob所说,在这一点上,您只需直接通过Id即可。话虽如此,您不需要多个具有相同Id的元素(或名称。如果您可以控制如何处理锚定标记,那么只需对其应用一个类……由于注释语法有限,我将编辑上面的答案。哦-刚刚注意到您在var item=$(“#yourDivId a.foundItem”)中使用了类名称;如果您更改了ID,这将不起作用。您希望var item=$(“#yourDivId a#foundItem”);谢谢ovalsquare,效果很好。我现在正式被jQuery震惊了。哇……这是最好的答案。尽管其他海报都是正确的,jQuery(和其他LIB)让这些任务变得简单,如果作者没有声明,那么假设作者愿意使用jQuery是错误的——特别是当这可能是唯一的脚本需求时。jQuery是一个厨房水槽。如果OP让它听起来像是有强大的脚本需求,那就不一样了,但对于某些事情来说,简单依赖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);

  }

}