2014-01-03 2 views
0

Мне нужно удалить ось x. Вот мой minimal nonworking exampled3 selection.remove() не удаляется

Мой HTML выглядит следующим образом:

<div class="chart" ng-switch="col.type"> 
    <svg width="150" height="20"> 
     <g class="main" transform="translate(5,5)"> ... </g> 
     <g class="x axis" transform="translate(5,5)"> ... </g> 
    </svg> 
</div> 

My JavaScript (с помощью D3), как это:

svg.selectAll(".x.axis").remove(); 

Я уверен, что переменная svg выбрана правильно, потому что он был использован в моем предыдущем коде без проблем.

Вот несколько вещей, которые я пробовал:

svg.selectAll("g.x.axis").remove(); 

svg.selectAll(".x.axis").data([]).exit().remove(); 

svg.selectAll("g.x.axis").data([]).exit().remove(); 

svg.selectAll(".x").data([]).exit().remove(); 

svg.selectAll(".x").remove(); 

Но ни один из них не снимает ось х для меня :(

Отладочный вывод:

console.log("SVG data: " + svg); 
// output: SVG data: [object SVGGElement] 

console.log("x axis: " + svg.selectAll("g.x.axis")); 
// output: x axis: 
+1

это, кажется, работает проверить это http://jsbin.com/AfIhijO/2/edit?html,css,js,output –

+0

@SaravanaKumar да, это работает в демо, но не в моем коде ... weird – CherryQu

+0

Можете ли вы поделиться более подробной информацией о вашем коде? Как вы инициализируете объект svg. Также попробуйте отладить с помощью console.logging объект svg и svg.selectAll («g.x.axis»). –

ответ

1

Попробуйте это код:

DEMO

var svg = d3.select(".chart").select("svg"); 
    svg.selectAll(".x.axis").remove(); 
+0

спасибо! он работает в демо, но не в моем коде ... я мог пропустить что-то? – CherryQu

+0

, пожалуйста, сделайте свой код скриптом .. легко проверить. – Manoj

+0

попробуйте добавить id, затем выберите, что x .. svg.selectAll ("# x"). Remove(); http://jsfiddle.net/manojmcet/Hz9Vx/ – Manoj

1

Вы пропустили кавычки для названия класса в диаграмме. Проверьте это here

var svg = d3.select(".chart").select("svg"); 
svg.selectAll(".x.axis").remove(); 
Смежные вопросы