2013-05-01 18 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