0

私はSVG形式の郡ごとの米国の地図を使用しています。このマップは生成しませんでした。次のようなPATH要素があります。

  <path
     style="font-size:12px;fill:#d0d0d0;fill-rule:nonzero;stroke:#000000;stroke-opacity:1;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-linecap:butt;marker-start:none;stroke-linejoin:bevel"
     d="M 445.51998,291.515 L 451.69098,290.644 L 452.25298,290.563 L 452.85298,294.444 L 453.25798,297.212 L 447.56998,298.055 L 448.71498,296.347 L 448.73698,296.297 L 448.98998,295.683 L 449.04798,295.354 L 448.86298,294.795 L 448.70098,294.58 L 446.99298,293.975 L 446.58298,293.98 L 446.24498,294.044 L 445.92498,294.134 L 445.51998,291.515"
     id="12057"
     inkscape:label="Hillsborough, FL" />

私がやりたいのは、マウスにカーソルを合わせると、郡名でポップアップテキストが表示されるようにすることです。この例では、名前がで保持されていることがわかりますinkscape:label="Hillsborough, FL"。この値を取得するのに問題があります。私はさまざまなバージョンを試しました:

this.label
this.inkscape.labe
...

これらはそれぞれ、未定義またはnullエラーで失敗します。このコンテンツをJavaScriptで読み取るにはどうすればよいですか?現在のシステム仕様は、ASP.NETサイトで実行されているjQuery1.7.2およびd3jsv2です。

4

3 に答える 3

3

このようなものは、属性値を読み取るために機能するはずです(サンプルの要素のIDを使用):

var myLabel = $('#12057').attr('inkscape:label');
于 2012-07-19T18:37:07.857 に答える
1

これは私のために働いたものです。inkscape属性は、NamedNodeMapとして保存されます。

itemClick = function( evt ) {
        var obj = evt.target;
        var label = obj.attributes['inkscape:label'].nodeValue;
        window.alert('Object: ' + obj.id + ' Clicked, Label: ' + label);
        }
于 2014-09-22T15:11:59.563 に答える
0

この要素はjQueryで選択できますが、操作することはできません。これはjQueryの目的ではありませんが、Raphael.jsを使用してそのパスを選択および操作できます。
実は、ラファエルデモページにもそのような例があると思います。

于 2012-07-19T18:25:55.253 に答える