如何删除HTML标签属性中字符串的空格?

sq1bmfud  于 2022-12-16  发布在  其他
关注(0)|答案(3)|浏览(163)

我正在浏览一个网站的.cshtml页面。我的目标是为了测试的目的向许多分区和元素添加ID属性。
页面使用angularJS,并且我想添加ID属性的许多元素都是列表的一部分,使用指令'ng-repeat'进行迭代。
例如:

<div ng-repeat="category in CategoryList">
    <h2>{{category.Name}}</h2>
 </div>

给这个div添加一个静态ID是行不通的,因为它对于CategoryList中的每个对象都是相同的ID。相反,我通常这样做:

<div id="{{Category.Name}}Div" ng-repeat="category in CategoryList">
    <h2>{{Category.Name}}</h2>
 </div>

这通常是有效的,但不幸的是,有时候对象的名称包含白色,所以编译时,它可能看起来像这样:
<div id="Category OneDiv">
有没有一种方法可以操作ID属性所使用的字符串,并从中删除空格?

vpfxa7rd

vpfxa7rd1#

将空格替换为无空格。但是,如果将空格替换为破折号,可读性会更好。

console.log("this is a test".replaceAll(' ', ''));
console.log("this is a test".replaceAll(' ', '-'));
bnl4lu3b

bnl4lu3b2#

也许你可以试试这样的方法:

"hello world".replace(/\s/g, "");
<h2>{{Category.Name.replace(/\s/g, "")}}</h2>
c8ib6hqw

c8ib6hqw3#

你认为:

<div ng-attr-id="{{getCustomId(category, $index)}}" ng-repeat="category in CategoryList track by $index">
    <h2>{{Category.Name}}</h2>
</div>

在控制器中:

$scope.getCustomId = function(id, index) {
  return `${id.replaceAll(' ', '_')}_${index}`;
  // Output expected: 'Category_One_0', 'Category_One_1', 'Category_One_2'...
};

参考文献:

相关问题