如果el包含此文本,请从中删除此字符串
If el contains this text, remove this string from it?
我正在尝试检查单击的项目是否包含特定文本,如果包含,请将其删除。
<ul class="filter option-set dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" data-filter-group="Agencies">
<li><a class="btn btn-default btn-lg" href="#filter-client-any" data-filter-value="">All agencies</a></li>
<li><a id="filter-a" class="btn btn-default btn-lg" href="#filter-agency-a" data-filter-value=".A">A</a></li>
<li><a id="filter-z" class="btn btn-default btn-lg" href="#filter-agency-z" data-filter-value=".Z">Z</a></li>
<li><a id="filter-c" class="btn btn-default btn-lg" href="#filter-agency-c" data-filter-value=".c">C</a></li>
<li><a id="filter-h" class="btn btn-default btn-lg" href="#filter-agency-h" data-filter-value=".h">H</a></li>
</ul>
$(document).on( 'click touchend', '.filter a', function( event ) {
event.preventDefault();
var self = $(this);
if(self.html().indexOf("All ")!=-1)
self.html(self.html().replace("All ", ""));
});
上面的代码给了我:Uncaught TypeError: undefined is not a function
jQuery.contains()用于检查DOM元素是否是另一个DOM元素的后代。
您必须使用本机match()
或任何其他方式。试试这个。
<a href="#">All works</a>
<script type="text/javascript">
$(document).ready(function() {
$("a").on("click", function() {
if ($(this).text().match("All ").index != -1) {
$(this).text($(this).text().replace(/All /g, ''));
}
});
});
</script>
代码段
$(document).on('click touchend', '.filter a', function(event) {
var self = $(this);
if (self.html().indexOf("All ") != -1)
self.html(self.html().replace("All ", ""));
});
<!doctype html>
<html lang="en">
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script>
</script>
</head>
<body>
<ul class="filter option-set dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" data-filter-group="Agencies">
<li>
<a class="btn btn-default btn-lg" href="#filter-client-any" data-filter-value="">All agencies</a>
</li>
<li><a id="filter-a" class="btn btn-default btn-lg" href="#filter-agency-a" data-filter-value=".A">A</a>
</li>
<li><a id="filter-z" class="btn btn-default btn-lg" href="#filter-agency-z" data-filter-value=".Z">Z</a>
</li>
<li><a id="filter-c" class="btn btn-default btn-lg" href="#filter-agency-c" data-filter-value=".c">C</a>
</li>
<li><a id="filter-h" class="btn btn-default btn-lg" href="#filter-agency-h" data-filter-value=".h">H</a>
</li>
</ul>
</body>
</html>
您实际上需要设置新的文本内容,除此之外,检查现有字符串的条件可能无法正常工作。
if( $(this).text().indexOf('All ') > -1 ) {
$(this).text(function(_, text) {
return text.replace(/All's+/g, '');
});
}
您需要替换文本。
试试这个。
$("a").on("click", function(){
var self = $(this);
if(self.html().indexOf("All")!=-1)
self.html(self.html().replace("All", ""));
});
或者您可以使用$("a:contains('All')")
选择器。
$("a:contains('All')").on("click", function(){
var self = $(this);
self.html(self.html().replace("All", ""));
});
这对我有效:
$(document).on( 'click touchend', '.filter a', function( event ) {
var self = $(this);
if (self.text().indexOf("All ") > -1) {
self.text(self.text().replace("All ", ""));
}
});
请注意,我使用的是.text(),而不是.html()。
相关文章:
- 如何使用javascript在html表中删除字符串
- 如何在字符串中的值之前删除字符串中的动态数据?/ 使用 Lodash 的 _.trimStart 与动态数据
- 使用Javascript删除字符串的内容
- 如何删除字符串开头和结尾的换行符
- 用于删除字符串中字符开头到结尾的正则表达式
- 对于包含特定字符串的每个元素,删除字符串及其后的所有内容
- 使用Javascript/jQuery删除字符串中的反斜杠
- 如何删除字符串中间的尾随小数点零
- 删除字符串末尾的特定字符(html元素)
- 如何删除字符串周围的特定字符
- 使用javascript删除字符串中的重复项
- JavaScript在单击时从列表中删除字符串(如果已经存在)
- 如何删除字符串中从特定文本开始的所有字符
- 删除字符串中第5个字符之后的所有字符
- 如何删除字符串的第一个和最后一个字符
- 如何使用 JavaScript 删除字符串中除数字和空格之外的所有特殊字符
- 如何使用 javascript 删除字符串之间的标记
- textarea val() 使用 jQuery 编辑和删除字符串
- 从 href 中删除字符串
- 手动删除字符串 - JavaScript 中的空格