4
私は基本的なd3を試していますが、私はのそれぞれの属性を取得しようとしていますが、何も取得できません。D3要素から属性を取得
私はd3.selectAll("rect")
をしようとすると、私は私がまたは類似のもののようなものを使用してrect
の属性にアクセスすることができますどのように
を取得しますか?私はすべてrect
の異なる属性にアクセスしたいと思います。
私は基本的なd3を試していますが、私はのそれぞれの属性を取得しようとしていますが、何も取得できません。D3要素から属性を取得
私はd3.selectAll("rect")
をしようとすると、私は私がまたは類似のもののようなものを使用してrect
の属性にアクセスすることができますどのように
を取得しますか?私はすべてrect
の異なる属性にアクセスしたいと思います。
あなたはゲッター使用して、要素の任意の属性を取得することができます
d3.select(foo).attr("bar")
基本的にはただ一つの引数を持つattr()
機能です。
ここはデモです。矩形には、part1
とpart2
の2つのクラスがあります。私はすべてのpart1
長方形を選択し、そのX位置を取得しています:
var svg = d3.select("svg");
var rects = svg.selectAll("foo")
.data(d3.range(14))
.enter()
.append("rect")
.attr("fill", "teal")
.attr("y", 20)
.attr("x", d => 10 + 12 * d)
.attr("height", 40)
.attr("width", 10)
.attr("class", d => d % 2 === 0 ? "part1" : "part2");
d3.selectAll(".part1").each(function(d,i) {
console.log("The x position of the rect #" + i + " is " + d3.select(this).attr("x"))
})
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg></svg>
は、私は上記のコードから、さらに2つの質問があり、ありがとうございます。 1. '.attr(" x "、d => 10 + 12 * d)' d => 10 + 12 * d 'はどういう意味ですか? 2. 'd3.select(this).attr(" x ")'これは 'function(d、i)'のために渡される要素を意味しますか? –
'this'は' d'または 'i'に関係なくDOM要素です。そしてその数学は、SVGの矩形を広げるだけです( 'd'は0から13になります)。 –
x値を配列に格納したり、後で使用するために矩形にバインドする方法はありますか? – jtr13