繁体   English   中英

如何<span>使用 jQuery 更改我动态创建的按钮内的文本?</span>

[英]How can I change the text inside my dynamically created button's <span> with jQuery?

我已查看如何使用 jQuery 更改 <span> 中的文本? 去我所在的地方。 但是,这不包括动态创建的按钮。

我正在动态创建包含 label 的按钮。

$("<button type='button' id='" + this.patExeId 
                + "' name='exerciseMachine' class='btn exeBtn btn-large col-lg-2 col-md-2 col-sm-2 col-3 m-1 p-3' "
                + "value='" + this.exeName + "'>" + this.exeName + " <span class='label label-light label-as-badge'>0</span></button>").appendTo($("#allExercises"));

在此处输入图像描述

三个“this.patExeId”值是

  • 办公室==
  • 镁==
  • 重量==

我想在练习集完成后更新 label。 我正在使用单击按钮时触发的测试代码:

$('#'+$(this).attr('id')+ ' span').html('3');

这会触发控制台日志中显示的错误:

jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: #OA== span

因为在你的情况下你正在制作一个像#id span这样的选择器但是你用来获取 id 的元素是this所以你可以让它更简单直接 select 使用find()在那个里面的元素

 $(this).find('span').html('3');

但是为了更好地解决您的第一个问题,您使用了一个带有包含特殊字符的 id 的选择器。 =在 css 中有特殊含义,因此如果您需要按字面意思包含它,则需要对其进行转义。 举一个非常简单的例子来说明,如果你有一个 id 为#0==的元素,你应该使用下面的选择器:

$('#O\\=\\=')

为了表明我的观点,这将是您问题的替代解决方案:

$('#' + $(this).attr('id').replace(/=/g, '\\=') + ' span').html('3');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM