All:
[UPDATE]
Finally figure out how D3 key function works conceptually: when using .data(newdata, key_function), this function will extract old bined data from element and put it into this key function get a key, and do same thing with the newdata, and compare them, if same, replace the old data with new data. Finally figure out how D