我的功能没有产生预期的结果

时间:2016-10-26 10:43:17

标签: javascript jquery

大家好我有这个函数的目的是返回一个锚元素,但是我遇到了一些问题。 这是我的代码:

 jQuery(document).ready(function ()  {
                    var myDiv = document.querySelector('.div1').childNodes;
                 	var anchor;
	               myAnchor = (function ()  {
	                              var i = 0;
		                          for (i = 0; i < myDiv.length; i++)  {
		                          anchor = myDiv[i];
			
			                      if (anchor.nodeName == 'a')  {
			                     return anchor;
			                      }else{
			                      return myDiv[i];
			                       }
		                             }   
	
	                     })();

                       console.log(myAnchor);
                        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
		   <div class="div1">
		        <p>This is the first paragraph inside the division</p>
			   <p>This is the second paragragh inside the division</p>
			   <h5>This is a h5 header</h5>
		       <p>This is a paragraph next to he h5 header</p>
		       <a href="#">justklick</a>
		   </div>		   
		</nav>

有人应该告诉我如何实现我的目标。我实际上想要访问作为div的祖先的锚。

让我的问题更加清晰。我知道jQuery让事情变得简单。但我的目的是迭代父元素,它是div = class1的div。并将结果设置为锚点。并且为了确保我的函数返回锚标记,我使用了一个if语句来检查锚是否现在等于一个标记,函数shoukd返回。我打算使用javascript jQuery ready函数纯粹是为了让dom准备就绪。    请朋友们,我做对了吗?

3 个答案:

答案 0 :(得分:1)

由于您已经在使用jQuery,为什么不使用它来选择锚点?

jQuery(document).ready(function () {
  var myAnchor = jQuery('.div1 a');
}

myAnchor[0]将为您提供dom元素(而不是jQuery对象)。

答案 1 :(得分:1)

&#13;
&#13;
jQuery(document).ready(function() {
  //Thhis function returns a list of A tags in the div
  function myAnchor() {
    return jQuery('.div1 a').toArray()
  }
  console.log(
    //Get list
    myAnchor()
  );
  console.log(
    //Get first A element
    myAnchor()[0]
  );
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
  <div class="div1">
    <p>This is the first paragraph inside the division</p>
    <p>This is the second paragragh inside the division</p>
    <h5>This is a h5 header</h5>
    <p>This is a paragraph next to he h5 header</p>
    <a href="#">justklick</a>
  </div>
</nav>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

使用jquery,它很容易:

 <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/开始,了解可能的内容。