反正有没有在Raphael js中访问属性值?

时间:2016-02-22 03:09:00

标签: javascript svg raphael

如果文本的字体大小在其属性中等于50,有没有办法比较?如何访问Raphael元素中的attr()值?例如,我有一个paper.set()包含很多paper.text()里面,我想知道是否有一个文本元素通过使用for循环得到“font-size”等于50。

1 个答案:

答案 0 :(得分:0)

与使用Element.attr(<attrName>, <attrValue>)设置属性值的方式相同,只需使用Element.attr(<attrName>)来检索值即可。请注意,<attrValue>会以文字形式返回给您,即"50"而不是50

以下代码段演示了这一点,虽然它可能在某些浏览器(例如Chrome)中无效,可能是因为该代码段正在尝试访问外部第三方库,即Raphael.js。因此,要运行它,要么使用Firefox,要么将其复制并在您自己的计算机上运行。

window.onload = function() {
  var paper = Raphael("holder", 200, 80);
  paper.set().push(
    paper.text(120, 20, "Hello").attr({"font-size": "40"}), // set attribute
    paper.text(120, 60, "Hello").attr({"font-size": "50"})
  ).items.forEach(function(item, itemNum) {
    document.getElementsByTagName('body')[0].appendChild(document.createElement("p")).innerHTML =
      "item #" + itemNum + ": " + (item.attr("font-size") === "50"); // get attribute
  });
};
<script src="http://github.com/DmitryBaranovskiy/raphael/raw/master/raphael-min.js"></script>
<div id="holder"></div>