2012-06-10 59 views
0

我是新来的JavaScript和jQuery。识别jQuery选择器

是什么选择的意思是: “#LayoutColumn2> DIV> DIV> DIV> UL”

Contect(它来自功能):

function loadNextTier(tierID, changedItemValue) { 
    linkArray.length = 0; 
$("#placeholderForLoad").load(changedItemValue + " #LayoutColumn2 > div > div > div > ul", function(){ 
    $("#placeholderForLoad li").each(function(){ 
     var itemName = $(this).children("a").text(); 
     var itemValue = $(this).children("a").attr("href"); 
     linkArray.push(itemValue+";"+itemName); 
    }); 
    if (tierID == "tier1") { 
     tierID = "tier2"; 
    } 
    else if (tierID == "tier2"){ 
     tierID = "tier3"; 
    } 
    else if (tierID == "tier3") { 
     tierID = "tier4"; 
    } 
    resetTiers(tierID); 
    fillMyList(linkArray, tierID); 
}); 
+0

它告诉jQuery选择任何'div'的直接子元素'ul',即'div'的直接子元素,即直接子元素'div'的子元素命名为'LayoutColumn2' –

+0

@Jack实际上,这不是关于jQuery,而是关于选择器(特别是[后代组合器](http://www.w3.org/TR/css3-selectors/#child-combinators)) –

回答

3

它将匹配以下结构

<any_tag id="LayoutColumn2"> 
    <div> 
    <div> 
     <div> 
     <ul> <-- matches this tag 
      <li> 
      <ul> <-- doesn't match. you only fetched children, not descendants 

#LayoutColumn2 > div > div > div > ul表示:

得到<ul>这是一个<div>,这是一个<div>,这是一个<div>的孩子的孩子的孩子,这是标识为LayoutColumn的标记的孩子。

顺便说一句,术语后裔指在某一个元素自带嵌套的任何元素(不管有多深)。没有组合器的CSS选择器通常会指向后代。

术语孩子儿童意味着是直接后裔或者是后人从元件只有1级深的元素。这就是>的目的。

+0

Joseph,谢谢您的回答。你确切地回答了我的问题,但我应该有不同的问题 –

1

从右读它到左:

ul内部div内部div内部div内部元件与id 'LayoutColumn2'

相关问题