我已经查看了如何使用 jQuery 更改 <span> 中的文本?到达我所在的位置。但是,这不包括动态创建的按钮。
我正在动态创建包含标签的按钮。
$("<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”值是
我想在练习集完成后更新标签。我正在使用单击按钮时触发的此测试代码:
$('#'+$(this).attr('id')+ ' span').html('3');
这会触发控制台日志中显示的错误:
jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: #OA== span
因为在您的情况下,您正在制作一个选择器,#id span
但您用来获取 id 的元素是这样的this
,因此您可以使其更简单,并使用find()
$(this).find('span').html('3');
但是为了更好地解决您的第一个问题,您使用了一个 id 包含特殊字符的选择器。在=
css 中具有特殊含义,因此如果您需要将其按字面意思包含,则需要对其进行转义。举一个非常简单的例子来说明,如果你有一个带有 id 的元素,#0==
你应该使用下面的选择器:
$('#O\\=\\=')
为了表明我的观点,这将是您问题的替代解决方案:
$('#' + $(this).attr('id').replace(/=/g, '\\=') + ' span').html('3');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句