2017-04-05 97 views
0

HTML div元素包含按大陸和物種種羣狀態分組的瀕危物種列表。實現遍歷ul li的函數JQUERY

<div> 
    <ul data-continent="North America"> 
     <li data-species="California condor">Critically Endangered</li> 
     <li data-species="American bison">Near Threatened</li> 
    </ul> 
    <ul data-continent="Europe"> 
     <li data-species="Cave bear">Extinct</li> 
    </ul> 
</div> 

我想寫一個函數,返回一個物種在特定大陸上的瀕危情況。例如,瀕臨滅絕的物種('北美','美洲野牛')將返回「近危」狀態。

+0

告訴我們你的javascript代碼 –

+0

這個值('North America','American bison')'是從哪裏來的?通過搜索框或輸入框?讓我們知道 –

+0

我寫了一個方法,分別提交我的價值......這是一個在線測試問題.. – Suyash

回答

5

這應該是微不足道的

function endangeredSpecies(continent, species) 
{ 
    return $("ul[data-continent='" + continent + "'] li[data-species='" + species + "']").html(); 
} 
1

以下是你可能需要爲了解決該問題的信息片段:

  1. 屬性選擇

    您可以選擇元素基於它們的屬性名稱和值。例如,如果您要選擇具有data-continent屬性的元素,則可以使用(使用jQuery)$('[data-continent]')。如果你想檢查值,你可以做$('[data-continent="somevalue"]')

  2. jQuery的.text()

    由於是使用jQuery的元素,你可以通過調用就可以了.text()方法,像這樣得到其文本內容:$('li').text()

使用這些,你可以實現你想要的。我知道我沒有直接回答你的問題,但這是你要弄清楚的:)

+0

感謝arnelle-balane的回覆...我用一個函數來提交我的價值。 – Suyash

0

在得到div兒童後,你可以過濾包含指定大陸的ul元素,然後查找包含指定大陸的li元素種類。

function getStatus(elementChildren, species) { 
    var i; 
    for (i = 0; i < elementChildren.length; i++) { 
     if ($(elementChildren[i]).data("species") === species) { 
     return $(elementChildren[i]).text(); 
     } 
    } 
    } 

function endangeredSpecies(continent, species) { 
    var divChildren = $("div").children(); 
    var i; 
    var status = ""; 
    for (i = 0; i < divChildren.length; i++) { 
    if ($(divChildren[i]).data("continent") === continent) { 
     status = getStatus($(divChildren[i]).children(), species); 
    } 
    } 
    return status; 
}