【问题标题】:Using attr data in jQuery在 jQuery 中使用 attr 数据
【发布时间】:2011-12-06 08:50:04
【问题描述】:

我对 jQuery 很陌生,所以这可能是一个非常基本的错误,但这是对的吗?

var maxFont = $('h2').attr('font-max');
jQuery('.jtextfill').textfill({ maxFontPixels: + maxFont });

在html中设置了font-max的属性,但是我这里由于某种原因无法成功使用。

我正在尝试代替必须做这样的事情:

maxFontPixels: 72 

如果有问题,html 看起来像这样:

<h2 font-max="[someValue]" >

我将不胜感激任何帮助...谢谢!

更新: 解决方案是删除“+”和变量之间的空格。就像我说的,我是菜鸟。希望这会有所帮助。

【问题讨论】:

  • 好问题。 { maxFontPixels: + maxFont } 有什么好处?您是否尝试使用 alert(maxFont) 进行调试?
  • 你试过var maxFont = $('h2:first').attr('font-max');吗?可能是您返回的是元素数组而不是特定元素。
  • + 是一元加号运算符,它将字符串转换为数字。
  • 感谢您的快速回复。我刚刚使用了警报,它确实给了我价值。加号只是试图从各种不太正确的示例中找出这一点的结果。但是,删除它并不能解决问题。
  • @James - 我正在处理一个号码

标签: jquery custom-attributes attr


【解决方案1】:

这行代码的宽度

var maxFont = $('h2').attr('font-max');

你得到 72。 如果您想将其写入 DIV、SPAN 或其他内容,您可以通过

$('.theElementToDisplay').innerHTML(maxFont);

如果你想改变 HTML 元素的 maxFont 值,你可以设置这个

$('h2').attr('font-max', 'yourValue');

【讨论】:

    【解决方案2】:

    从您的问题中不清楚究竟是什么不起作用。

    无论如何,不​​要使用自定义属性,使用 data-* 属性。

    变化:

    <h2 font-max="[someValue]" >
    

    收件人:

    <h2 data-font-max="[someValue]" >
    

    然后改变:

    var maxFont = $('h2').attr('font-max');
    

    收件人:

    var maxFont = $('h2').data('font-max');
    

    虽然这是执行自定义属性的更好方法,但它可能仍然无法解决您的问题。致电textfill 更有可能是您的问题。

    【讨论】:

    • @BNL - 关于插件调用中的问题,您是对的。如果我对值进行硬编码,它工作正常,所以我认为我只是错过了将变量插入调用的部分。
    • 那么 maxFont 是否真的获得了价值?如果您可以提醒 maxFont 的值,则无需执行任何其他操作。
    • @BNL - 是的,它发出了警报。我在上面的 cmets 中发布了解决方案,但基本上我必须删除“+”和变量之间的空格。我将听取您的建议并尝试按照您的建议转换为使用数据属性。
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多