【问题标题】:Change Style based on string length根据字符串长度更改样式
【发布时间】:2016-03-14 12:53:51
【问题描述】:

所以我有一个数组,它根据显示的图表获取多个字符串。现在我正在寻找这个数组中最长的字符串。现在这工作没有问题。

代码如下:

var textLengthArray = [];
            domContainer.find(" g > .element1 > .element2> text").each(function () {
                textLengthArray.push($(this).text());
            });


            var longestString = textLengthArray.sort(function (a, b) {
                return b.length - a.length;
            })[0];

现在我想根据最长的字符串更改那些“文本”元素的字体大小。所以如果数组中最长的字符串超过 10 个字符,则 font-size 应更改为“x px/pt”。

我的第一个想法是这样的:

 if (longestString >= 10){
 domContainer.find(" g > .brm-y-direction > .tick > text")
.style('font-size', '4pt')                            
            };

我也尝试过类似的方法:

if (longestString >= 2){
   $("g.brm-y-direction.tick").find("text").css("font-size", "4pt") ;  };

但这些解决方案根本不起作用。那么谁能告诉我如何通过javascript解决这个问题?

生成的 HTML 文本如下所示:

<g class="tick" transform="translate(0,74)" style="opacity: 1;">
     <line x2="-6" y2="0"></line>
            <text dy=".32em" x="-12" y="37" style="text-anchor: end;">sampletext</text></g>

【问题讨论】:

  • 能否包含您尝试设置字体大小的元素的 HTML 示例?
  • 你可能想添加一个 jQuery 标签。

标签: javascript jquery css styles


【解决方案1】:

我在你的 HTML sn-p 中没有看到brm-y-direction,所以你可以试试

$("g.tick text").css("font-size", "4pt");

【讨论】:

  • 成功了!非常感谢!
猜你喜欢
  • 2011-05-13
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 2012-01-19
  • 1970-01-01
  • 2016-07-08
  • 2013-11-25
相关资源
最近更新 更多