d3 js突出显示包含给定字符串

时间:2017-02-21 09:44:17

标签: javascript jquery asp.net d3.js

我愿意搜索并突出显示包含给定字符串的节点。 sample

因为我正在调用set_focus方法

function set_focus(d)
{   
    text.style("opacity", function(o) {
        return isConnected(d.id, o.id) ? 1 : null;
    });

    img.style("opacity", function(o) {
        return isConnected(d.id, o.id) ? 1 : null;
    });

    link.style("opacity", function(o) {
        return o.source.index == d.index || o.target.index == d.index ? 1 : null;
    }); 

}

以上功能有条件地设置元素的不透明度。我想设置彼此连接的节点的不透明度。但我不想打扰那些没有连接的节点的不透明度。

更多说明:

return isConnected(d.id, o.id) ? 1 : null;

如果isConnected == false

,我不想返回不透明度

必填: return isConnected(d.id, o.id) ? 1 : "here return the current opacity value";

发生: return isConnected(d.id, o.id) ? 1 : "returning zero or null";

1 个答案:

答案 0 :(得分:1)

您可以使用 getter 获取当前元素的不透明度值:

d3.select(this).style("opacity");

然后,您可以在三元运算符中使用它:

text.style("opacity", function(o) {
    var current =  d3.select(this).style("opacity");
    return isConnected(d.id, o.id) ? 1 : current;
});