2013-08-21 142 views
0

我想如果條件匹配,那麼passsing成功的消息否則失敗做這個使用d3.js

// Search operation starts here 
    $('#search').click(function() { 
     var searchVal = $('#searchBox').val(); 
     var zipVal = d3.selectAll('.node').attr('zipcode'); 
     if (searchVal == zipVal) { 
      alert('success'); 
     } else { 
      alert('failed'); 
     } 
    }); 

運行搜索操作後,通過一個成功或失敗的消息SVG元素的DOM屬性檢查消息 這裏是小提琴

http://jsfiddle.net/sghoush1/DHATQ/11/ 

回答

0

你不能選擇的屬性zipcode所有.node,我理解你的代碼是試圖做的是尋找一個郵編,看看它是否存在於第n噢,對嗎?那麼正確的代碼如下:

$('#search').click(function() { 
    var searchVal = $('#searchBox').val(); 
    var zipVal = d3.selectAll('.node').attr('zipcode'); 
    if (data.map(function(d) {return JSON.parse(d.zip_code.human_address).zip; }).indexOf(searchVal) != -1) { 
     alert('success'); 
    } else { 
     alert('failed'); 
    } 
}); 
+0

@ Barnab - 是的,這是正確的。我正在尋找郵編。您的解決方案很好。謝謝 – soum

1

您還可以使用D3的查詢選擇的能力,以確定是否一個節點匹配標準,像這樣:

var zipVal = d3.selectAll('.node[zipcode="' + searchVal + '"]'); 
if (zipVal[0].length > 0) {  
    alert('success'); 
} else { 
    alert('failed'); 
} 

這也可以讓你應用轉換就只是那些符合條件的,喜歡彰顯匹配搜索詞的那些等

源節點:https://github.com/mbostock/d3/wiki/Selections