milesdavis
New member
Hey Leute,
ich habe folgenden Code:
	
	
	
		
Der Code erzeugt im Grunde mit D3.js 4 Kreise und dazu ein Drop-Fenster mit 4 Auswahlmöglichkeiten. Diese Auswahlmöglichkeiten sind die Indexe i des Arrays "data", also 0, 1, 2, 3.
Dies wird durch die zeile
	
	
	
		
 ermöglicht.
Durch Klicken der Indexe im Drop-Fenster verschwinden die Kreise mit Hilfe der Splice-Funktion.
Mein Ziel ist nun folgendes:
ich möchte auf einen Index i im Drop-Fenster klicken, sagen wir mal 2 und diesen Wert in einer Variable "a" zwischenspeichern. Dieser soll dann automatisch von der Splice-funktion verwendet werden, also
	
		
.
Ich möchte also, dass wenn man den Index "2" , quasi 2 Elemente durch die Splice-Funktion entfernt werden. Und wenn ich Index "3" anklicke, dann sollen 3 Elemente entfernt werden.
Kann mir einer von euch dabei helfen?
Vielen lieben Dank
Gruss
- - - Aktualisiert - - -
Ich habe es schon mit "selectedIndex" probiert, aber das war wohl nicht die richtige Lösung.
- - - Aktualisiert - - -
				
			ich habe folgenden Code:
		Code:
	
	var data = [10,20,30,40];
var color = d3.schemeCategory10; // color array built in
//// Add the select and options:
var select = d3.select('body')
  .append('select')
  .on('change',function() { update(this.value) });
var start = select.append('option')
  .html("select: ");
var options = select.selectAll('.option')
  .data(data)
  .enter()
  .append('option')
  .attr('class','option')
  .attr('value',function(d,i) { return i; })
  .html(function(d,i) { return i; });
//// Add the circles (and svg)
var svg = d3.selectAll('body')
  .append('svg')
  .attr('width',500)
  .attr('height',200);
var circles = svg.selectAll('circle')
  .data(data)
  .enter()
  .append('circle')
  .attr('cx',function(d,i) { return i * 30 + 50; })
  .attr('cy',50)
  .attr('r',10)
  .attr('fill',function(d,i) { return color[i]; });
// Update everything:
function update(i) {
  data.splice(i,1); // remove that element.
  // Update and remove option from the select menu:
  options.data(data).exit().remove();
  // Remove that circle:
  circles.data(data).exit().remove(); 
  circles.attr('cx',function(d,i) { return i * 30 + 50; })
    .attr('fill',function(d,i) { return color[i]; });
  // reset the select menu:
  start.property('selected','selected');
}Der Code erzeugt im Grunde mit D3.js 4 Kreise und dazu ein Drop-Fenster mit 4 Auswahlmöglichkeiten. Diese Auswahlmöglichkeiten sind die Indexe i des Arrays "data", also 0, 1, 2, 3.
Dies wird durch die zeile
		Code:
	
	 .html(function(d,i) { return i; });Durch Klicken der Indexe im Drop-Fenster verschwinden die Kreise mit Hilfe der Splice-Funktion.
Mein Ziel ist nun folgendes:
ich möchte auf einen Index i im Drop-Fenster klicken, sagen wir mal 2 und diesen Wert in einer Variable "a" zwischenspeichern. Dieser soll dann automatisch von der Splice-funktion verwendet werden, also
		Code:
	
	data.splice(i,a);Ich möchte also, dass wenn man den Index "2" , quasi 2 Elemente durch die Splice-Funktion entfernt werden. Und wenn ich Index "3" anklicke, dann sollen 3 Elemente entfernt werden.
Kann mir einer von euch dabei helfen?
Vielen lieben Dank
Gruss
- - - Aktualisiert - - -
Ich habe es schon mit "selectedIndex" probiert, aber das war wohl nicht die richtige Lösung.
- - - Aktualisiert - - -
 
				 
						