【问题标题】:jquery replace an ID with variablejquery用变量替换ID
【发布时间】:2011-03-04 16:45:57
【问题描述】:

我有一个 id="test" 并希望将其替换为变量:PitchesRemaining: http://jsfiddle.net/xtian/G7Qdp/

HTML:

    <div class="wrap wrap-widgets relative">
        <div class="speedometer" id="test">6</div>
        <span id="AveragePitches">55</span>
        <span id="PitchesToday">15</span>
    </div>

jquery:

        $(function(){
        var AveragePitches = parseInt($("#AveragePitches").text());
        var Buffer = AveragePitches * .2;
        var PitchesMax = AveragePitches + Buffer;
        var PitchesToday = parseInt($("#PitchesToday").text());
        var PitchesRemaining = PitchesMax - PitchesToday;

        $("#test").change(function() {
            PitchesRemaining = $(this).val();
            }).change();
    });

【问题讨论】:

  • "当元素值改变时,改变事件被发送到元素。这个事件仅限于&lt;input&gt;元素、&lt;textarea&gt;框和&lt;select&gt;元素。" api.jquery.com/change
  • 您希望将 id 替换为 id="x"
  • 你到底想做什么?是否要更改 div 的 ID 或内容?
  • 我希望 #test 的值更改为 var PitchesRemaining 的值
  • 另外,&lt;div&gt; 标签没有value 属性,所以.val() 不起作用。您需要使用.html()

标签: jquery html variables


【解决方案1】:

您可以使用 jQuery 的 attr 方法更改 Id:

obj.attr("id", PitchesRemaining);

不过,我不确定您要做什么。如果您尝试使用 ID 来跟踪变量,那么也许您应该查看.data

编辑:

阅读您在问题中的评论后;要将 div 的文本更改为 PitchesRemaining 的值,只需使用 text

$("#test").text(PitchesRemaining);

html:

$("#test").html(PitchesRemaining);

【讨论】:

  • 这可能会破坏他的更改事件,不是吗?例如如果他第二次改变我会认为它不会起作用
  • @Val - 工作正常。 jQuery 连接对象的 DOM 事件,而不是特定的 id:jsfiddle.net/3umZ9。虽然,这不是 OP 所追求的,所以我更新了答案。
  • 我并没有不同意,顺便说一句,只是从逻辑上考虑,但很高兴知道 :)
【解决方案2】:

要更改 &lt;div&gt; 的值,请执行以下操作:

$('#test').html(PitchesRemaining);

注意:.change() 事件仅适用于输入元素,不适用于 div。

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2014-10-10
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多