【问题标题】:width of a <span> appended dynamically in DOMDOM 中动态附加的 <span> 的宽度
【发布时间】:2016-03-19 11:42:26
【问题描述】:

这看起来很简单,但我无法弄清楚这里出了什么问题。我已经动态附加了一个&lt;span&gt;,如下所示:
$("#parent").append("&lt;span style='display:inline-block; position:absolute; background:yellow; z-index:10; top:12px;' id='mathBox"+flag_id+"'&gt;&lt;/span&gt;");

现在我需要在按下某个键时找到这个&lt;span&gt; 的宽度(在我的情况下是TAB!)。
最初我尝试这样的 jquery:
var width_of_text= $("'mathBox'+flag_id").width(); alert(width_of_text);
但这在控制台中显示了一个错误,即无法识别此表达式(即使我觉得这里有些不对劲!!)
然后我尝试使用 vanila JS,如下所示:
var mathBox_id=document.getElementById('mathBox'+flag_id); var width_of_text= mathBox_id.offsetWidth; alert(width_of_text);

现在这工作正常,但它显示我错误的宽度。 DOM 上的&lt;span&gt; 元素(在测试时)几乎没有 25 宽,但它的宽度显示为 111 宽。
我知道我一定是在做一些愚蠢的事情,但我就是没能抓住它..
请帮忙!!

【问题讨论】:

  • 您将变量用作字符串。使用:$('mathBox'+flag_id)
  • @BhojendraNepal 感谢您指出这一点,我猜这是我的拼写错误!对不起!
  • 为什么这被否决了?我不应该问问题吗?

标签: javascript jquery html dom width


【解决方案1】:

var width_of_text= $('mathBox'+flag_id).width(); 使用带有 ID 的 # 符号。

var width_of_text= $('#mathBox'+flag_id).width();

【讨论】:

    【解决方案2】:

    jQuery 版本的语法是

    var width_of_text= $('#mathBox'+flag_id).width();
    alert(width_of_text);
    

    【讨论】:

    • 啊...我会说这真的是我的一个愚蠢的错误!谢谢
    • 但我仍然无法获得正确的宽度。 :(
    • @TusharShukla 您尚未定义元素的宽度。您需要明确定义它。
    • @BhojendraNepal 但是内容是动态的,可以是任何宽度,如果我给它一个明确的宽度,那么它会有点固定..对吗?
    • 因为你使用的是绝对定位。或者,您可以定义左右值。然后通过js获取宽度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2010-12-17
    • 2019-05-24
    • 2015-01-27
    • 2012-09-25
    • 2013-04-02
    • 2018-09-06
    相关资源
    最近更新 更多