有没有办法在Javascript中找到文本的宽度(使用jQuery,很高兴利用它们提供的任何函数)来隐藏元素?
我想要一个节点图。每个节点都有文本内部,我希望节点的宽度可以容纳文本达到限制。所以我基本上用一些html创建隐藏的<div>
。然后我使用jQuery在图表的正确位置显示那些<div>
。重要的是我提前知道正确的宽度,以便我可以正确地构建图形。
更新 :为了澄清,我需要知道一些文字在被隐藏时有多宽。 Blender给出了一个答案,我希望有一个不那么棘手的方法吗?
答案 0 :(得分:1)
$('#txt').width()
答案 1 :(得分:1)
你是什么意思?如果你的意思是<div>
元素的宽度,那么有一个方便的功能可以满足你的需要。玩其中一些:
$('#foo').width();
$('#foo').innerWidth();
$('#foo').outerWidth();
至于找到隐藏元素的width
,我通常会做这个肮脏的伎俩:
var zIndex = $('#foo').css('z-index');
$('#foo').css('z-index', '-10');
$('#foo').css('position', 'absolute');
$('#foo').css('display', 'block');
var fooWidth = $('#foo').width();
$('#foo').css('display', 'none');
$('#foo').css('z-index', zIndex);
但必须有一种更简单的方法......
答案 2 :(得分:1)
您可以将div的样式设置为不包裹white-space:nowrap
(因此,文本在一行中)然后获取每个div的宽度,如果超过限制,则将其设置为限制并设置允许文本换行“white-space:normal
答案 3 :(得分:0)
只是在这个问题上投入非JQuery答案。假设我有一个id为myworkerdiv的工作div,我已经把我的文本放进去了。
var myDiv document.getElementById('myworkerdiv'),
width = myDiv.clientWidth || myDiv.scrollWidth;
如果包括(clientHeight || scrollHeight),你也可以找到身高。
答案 4 :(得分:0)
您可以使用类似的blender方法,但使用visibility css属性而不是display。能见度:隐藏;保持元素的放置,但只是让它不可见。