2013-05-01 67 views
-3

編輯: 我終於得到了我的問題的解決方案 - 我正在使用錯誤的代碼爲我想實現的。而不是':nth-​​child'我應該使用'過濾器'。該過濾器:即使工程...但:nth孩子(2)不

這裏是我應該使用的代碼:

$('div [class^="thirdCredits"]').filter(function(index) { 
return (index % 2 == 1); 
}).css("border" , "1px red solid"); 

...... http://jsfiddle.net/focusonfiddle/YVw6F/2/ 你好, 自從我上次以上消息我現在已經提供了更多的代碼。下面的代碼可以工作,但是如果你帶入包含註釋的代碼:nth-​​child(2n)它不會 - 發生了什麼? 謝謝。

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>untitled</title> 

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script type="text/javascript"> 

$("document").ready(function() { 
//$.each($('[class^="thirdCredits"]:nth-child(2n)') ,function()  
$.each($('[class^="thirdCredits"]:even') ,function() 
{ 
    $(this).css("border" , "1px red solid"); 

    }); 
}); 
</script> 

</head> 
<body> 
<div id="tableMarkup"> 
    <div id="myTable"></div> 
    <div id="template"> 
    <ul style="width:65%; background-color:#67c1fd"> 
     <li>This is a line of text</li> 
    </ul> 
    <ul style="width:9%;"> 
     <li> 
     <div class="styled-select"> 
      <select class="thirdCredits0"> 
      <option value="10">10</option> 
      <option value="20">20</option> 
      <option value="30">30</option> 
      </select> 
     </div> 
     </li> 
    </ul> 
    <ul style="width:9%;"> 
     <li> 
     <div class="styled-select"> 
      <select class="thirdCredits1"> 
      <option value="10">10</option> 
      <option value="20">20</option> 
      <option value="30">30</option> 
      </select> 
     </div> 
     </li> 
    </ul> 
    <ul style="width:9%;"> 
     <li> 
     <div class="styled-select"> 
      <select class="thirdCredits2"> 
      <option value="10">10</option> 
      <option value="20">20</option> 
      <option value="30">30</option> 
      </select> 
     </div> 
     </li> 
    </ul> 
    <ul style="width:9%;"> 
     <li> 
     <div class="styled-select"> 
      <select class="thirdCredits3"> 
      <option value="10">10</option> 
      <option value="20">20</option> 
      <option value="30">30</option> 
      </select> 
     </div> 
     </li> 
    </ul> 
    </div> 
</div> 
</body> 
</html> 
+1

第n個孩子(2)只抓住第二個孩子 – dandavis 2013-05-01 17:10:23

+1

您可以發佈您的HTML? – Adrift 2013-05-01 17:10:56

+0

你忘了解釋「不起作用」的含義。你也忘了閱讀[文檔](http://api.jquery.com/nth-child-selector/)。爲什麼? – 2013-05-01 17:20:24

回答

-1

我終於得到了解決我的問題 - 我使用了錯誤的代碼是什麼我想實現。而不是':nth-​​child'我應該使用'過濾器'。

這裏是我應該使用的代碼:

$('div [class^="thirdCredits"]').filter(function(index) { 
return (index % 2 == 1); 
}).css("border" , "1px red solid"); 
2

我不能回答什麼是沒有看到你的HTML發生不同,但:even不如nth-child(2)一樣 - 也許你想nth-child(2n)

如果你的HTML看起來像這樣:

<ul> 
    <li>a</li> 
    <li>b</li> 
    <li>c</li> 
    <li>d</li> 
    <li>e</li> 
</ul> 

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
</ul> 

運行這段代碼:

$('li:even').each(function() { console.log($(this).text()); }); 

會記錄 「一」, 「C」, 「E」, 「2」, 「4」 - 它只需要所有匹配的元素,並給你所有其他的元素。

儘管此代碼:

$('li:nth-child(2)').each(function() { console.log($(this).text()); }); 

會登錄 「B」, 「2」 - 只有每個父母的第二個孩子。

The jQuery documentation有一個很好的小腳本來說明不同之處。

+0

嗨保羅Bergantino感謝您的答案 - 我已經提供了更多的代碼,因爲我還沒有得到的東西工作。 – user2258202 2013-05-01 19:11:54

0

http://jsbin.com/oriwuc/2/edit

HTML:

<div class="thirdCredits">1</div> 
<div class="thirdCredits">2</div> 
<div class="thirdCredits">3</div> 
<div class="thirdCredits">4</div> 

的Javascript:

console.log("This will output even ones with index of 0, 2, 4"); 

$.each($('[class^=thirdCredits]:even') ,function() { 
     console.log($(this).text()); 
}); 

console.log("This will output the second child only"); 

$.each($('[class^=thirdCredits]:nth-child(2)') ,function() { 
     console.log($(this).text()); 
}); 

console.log("This will output every 2nd child 2, 4, 6 etc."); 

$.each($('[class^=thirdCredits]:nth-child(2n)') ,function() { 
     console.log($(this).text()); 
}); 

的jQuery( 「:甚至」)

尤其要注意的是,基於0的索引意味着,在直覺上反直覺地:甚至在匹配集合內選擇第一個元素,第三個元素, 等等。

的jQuery( 「:第n個孩子(指數/偶/奇/公式)」)

index: The index of each child to match, starting with 1, the string even or odd, or an equation (eg. :nth-child(even), :nth-child(4n)) 
+0

嗨KingKongFrog謝謝你的回答 - 我提供了更多的代碼,因爲我還沒有工作 - 我對Jquery相當陌生,謝謝。 – user2258202 2013-05-01 19:17:55