Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在字符串中找到特定单词的宽度和高度?_Javascript_Jquery_Height_Width - Fatal编程技术网

Javascript 如何在字符串中找到特定单词的宽度和高度?

Javascript 如何在字符串中找到特定单词的宽度和高度?,javascript,jquery,height,width,Javascript,Jquery,Height,Width,我试图用相同高度(或字体大小)和宽度的表单替换特定的无类单词,而不是整个字符串。我希望它工作,即使我改变了CSS。这是我的密码: var magicWord = "abracadabra"; var width = $('#words').width(); var height = $('#words').height(); var x = width + "px"; var y = height + "px"; $('html').append("<form><in

我试图用相同高度(或字体大小)和宽度的表单替换特定的无类单词,而不是整个字符串。我希望它工作,即使我改变了CSS。这是我的密码:

var magicWord = "abracadabra";

var width = $('#words').width();
var height = $('#words').height();

var x = width + "px"; 
var y = height + "px";


$('html').append("<form><input type='text' style='width: "+x+"; height: "+y+"; font-family: Courier;'></form>")
var magicWord=“abracadabra”;
变量宽度=$(“#字”).width();
变量高度=$(“#单词”).height();
var x=宽度+px;
变量y=高度+px;
$('html')。追加(“”)

这是我的最新消息。我自己用replace()解决了这个问题。任何效率更高的元素都将被授予令人垂涎的绿色复选标记。

您必须将其包装在自己的元素中,或者做一些更迟钝的事情(仅使用这些内容生成一个新元素(可能在屏幕外的某个位置),计算该元素的大小,然后将其删除)。您可能可以根据元素行高度和字符宽度(以em为单位)进行粗略计算,但在不知道使用了哪些字符或使用了单空格字体系列的情况下,我无法想象它会非常准确。

您必须将其包装在自己的元素中,或者执行一些更钝的操作(生成一个仅包含这些内容的新元素(可能在屏幕外的某个位置),计算该元素的大小,然后将其删除)。您可以根据元素行高度和字符宽度(以em为单位)进行粗略计算,但在不知道使用了哪些字符或使用了单空格字体系列的情况下,我无法想象它会非常准确。

您必须拥有该单词的DOM标识符。您可以更改您喜欢的:-

<span id ="words">Here is a bunch of <span> abracadabra </span> </span>
这是一堆咒语
而javascript作为

var magicWord = "abracadabra";

var width = $('#words span').width();
var height = $('#words span').height();

var x = width + "px";  
var y = height + "px"


$('html').append("<form><input type='text' style='width: "+x+"; height: "+y+"; font-     
family: Courier;'></form>")
var magicWord=“abracadabra”;
变量宽度=$('#单词span').width();
var height=$('#单词span').height();
var x=宽度+px;
变量y=高度+px
$('html')。追加(“”)

您必须拥有该单词的DOM标识符。您可以更改您的ID:-

<span id ="words">Here is a bunch of <span> abracadabra </span> </span>
这是一堆咒语
而javascript作为

var magicWord = "abracadabra";

var width = $('#words span').width();
var height = $('#words span').height();

var x = width + "px";  
var y = height + "px"


$('html').append("<form><input type='text' style='width: "+x+"; height: "+y+"; font-     
family: Courier;'></form>")
var magicWord=“abracadabra”;
变量宽度=$('#单词span').width();
var height=$('#单词span').height();
var x=宽度+px;
变量y=高度+px
$('html')。追加(“”)

Html画布具有文本度量功能。您可以按如下方式获取文本宽度:

var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
context.font="14px Verdana";
var width = context.measureText("abracadabra").width;

您也可以获取高度,但更困难的是,您必须使用画布进行线条扫描。

Html画布具有文本度量功能。您可以像这样获取文本宽度:

var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
context.font="14px Verdana";
var width = context.measureText("abracadabra").width;

您也可以获得高度,但这更困难,因为您必须使用画布进行线扫描。

也许我疯了,但您的小提琴似乎已经完全达到了您的要求。如果我有误解,请澄清您在寻找什么,以及您当前的解决方案(小提琴)是如何实现的不能完成那项任务。不,这是找到整个字符串的尺寸。我只想要“abracadabra”这个词无需将其放入课堂或id。啊。谢谢。将发布建议。也许我疯了,但你的小提琴似乎已经完全按照你的要求做了。如果我有误解,请澄清你在寻找什么,以及你当前的解决方案(小提琴)不能完成那项任务。不,这是找到整个字符串的尺寸。我只想要“abracadabra”这个词没有将其放入类或id中。啊。谢谢。将发布一个建议。这真是太棒了,但我很难让它发挥作用。宽度返回为59,即使在1米时也很小。是的,它对我来说太小了。font=“2米Courier”更接近。然后我将宽度乘以1.5,非常接近。更新css和context.font,它似乎保持非常接近。如果您可以更新context.font以匹配css,这可能是最干净的方法。抱歉!我忘了给您定义使用哪种字体的代码:context.font=“14px Verdana”或者你的字体。这真是太棒了,但我很难让它正常工作。宽度返回为59,即使在1em时也很小。是的,它对我来说太小了。设置上下文。font=“2em Courier”更接近。然后我将宽度乘以1.5,非常接近。更新css和context.font,它似乎保持非常接近。如果您可以更新context.font以匹配css,这可能是最干净的方法。抱歉!我忘了给您定义使用哪种字体的代码:context.font=“14px Verdana”或您的字体。