2014-01-14 34 views
4

我認爲將DOM元素作爲上下文添加到JQuery方法會限制該方法僅查看該元素及其後代而不是整個文檔。在控制檯在這JQuery 2.0與上下文最接近

<!DOCTYPE html> 
<html> 
<head> 
    <title>Example</title> 
    <script src="jquery-2.0.2.js" type="text/javascript"></script> 
    <link rel="stylesheet" type="text/css" href="styles.css"/> 
    <script type="text/javascript"> 
     $(document).ready(function() { 

      var contextElem = document.getElementById("row1"); 
      $("img").closest(".drow", contextElem).each(function(index, elem) { 
       console.log("Context Element: " + elem.tagName + " " + elem.className 
          + " " + elem.id); 
      });  

     });  
    </script> 
</head> 
<body> 
    <h1>JQuery Closest Example</h1> 
    <form method="post"> 
     <div id="oblock">   
      <div class="dtable"> 
       <div id="row1" class="drow"> 
        <div class="dcell"> 
         <img src="cell11.png"/><label for="cell11">Cell 1 1:</label> 
         <input name="cell11Value" value="0" required> 
        </div> 
        <div class="dcell"> 
         <img src="cell12.png"/><label for="cell12">Cell 1 2:</label> 
         <input name="cell12Value" value="0" required > 
        </div>    
       </div> 
       <div id="row2"class="drow"> 
        <div class="dcell"> 
         <img src="cell21.png"/><label for="cell21">Cell 2 1:</label> 
         <input name="cell21Value" value="0" required> 
        </div> 
        <div class="dcell"> 
         <img src="cell22.png"/><label for="cell22">Cell 2 2:</label> 
         <input name="cell22Value" value="0" required > 
        </div>  
       </div>    
      </div> 
     </div> 
     <div id="buttonDiv"><button type="submit">Save</button></div>      
    </form> 
</body> 
</html> 
J 

結果:如果是這樣的話......

爲什麼這

上下文元素:DIV卓爾ROW2

取而代之的是:

上下文元素:DIV卓爾row1

???

+0

小提琴顯示沿途發生了什麼:http://jsfiddle.net/Pypy8/ –

回答

1

在上下文中傳遞意味着jQuery將查找您的選擇器作爲context的後代。在你的情況下,你的選擇器和context是相同的元素。

+0

正確...但它不是row2或row2的父項。 row2如何被選中? –

+0

請看這裏。 http://jsfiddle.net/Pypy8/ row2如何被帶入圖片? –

+0

我同意凱文。從文檔來看,顯示的行爲是你所期望的。 – Adam