我有一个转发器,里面有一个带有图标的标签。
<strong><i id="iconProperties" class="icon-caret-right"></i> Properties</strong>
当我点击一个按钮时,必须将icon-caret-right转为icon-caret-down。我编写了如下代码:
$('#iconProperties').removeClass('icon-caret-right').addClass('icon-caret-down');
当我使用此代码时,只有转发器的第一行正在工作。所有其他行的图标都没有变化。这是什么错误?
答案 0 :(得分:4)
ASP.net为html元素生成唯一的ids
,并且只有一个元素可以具有您在选择器中使用的标识iconProperties
。您可以使用Attribute Contains Selector [name*="value"]代替id选择器来获取所有匹配元素。
$('[id*=iconProperties]').removeClass('icon-caret-right').addClass('icon-caret-down');
答案 1 :(得分:3)
如果您的ids
名称相似,那么您可能会喜欢这样的名字
$('[id^=iconProperties]').removeClass('icon-caret-right').addClass('icon-caret-down');
这将更新以id“iconProperties”开头的所有项目。
值得注意的是,通常的做法是使用唯一的ids
。
答案 2 :(得分:1)
试试这个:
$('#iconProperties').find('.icon-caret-right').replaceWith('.icon-caret-down');