我需要删除其 <div>
上的元素id
。我知道我可以使用以下功能 -
function removeElement(div_id) {
var div = document.getElementById(div_id);
element.parentNode.removeChild(div);
}
但事实是id
-复合。它由一个不变的部分和在每个请求中变化的部分组成。这部分是一组随机数字。
我知道,在这种情况下我需要使用正则表达式。举个例子,我将不胜感激。
我需要删除其 <div>
上的元素id
。我知道我可以使用以下功能 -
function removeElement(div_id) {
var div = document.getElementById(div_id);
element.parentNode.removeChild(div);
}
但事实是id
-复合。它由一个不变的部分和在每个请求中变化的部分组成。这部分是一组随机数字。
我知道,在这种情况下我需要使用正则表达式。举个例子,我将不胜感激。
以下是使用纯 JavaScript 而不需要任何库的方法:
var divs = document.getElementsByTagName('div'),
forEach = Array.prototype.forEach,
regex = /^foo.*$/;
forEach.call(divs, function (d) {
if (d.id !== undefined && regex.test(d.id)) {
d.parentNode.removeChild(d);
}
});
在上面的示例中,所有以 id 开头的 div 元素都foo
将被删除。这是一个例子:http: //jsfiddle.net/UemQ5/
您不必使用正则表达式,您可以使用这 3 个选择器之一,具体取决于您的需要:以 开头、以 结尾或contains。
以。。开始:$("[id^=item]")
以。。结束:$("[id$=item]")
包含:$("[id*=item]")
或者,如果它们不适合您的需求,这里还有更多:http: //api.jquery.com/category/selectors/
您可以使用 jquery 选择器正则表达式来解决它:)
阅读:http: //james.padolsey.com/javascript/regex-selector-for-jquery/
1. jQuery 属性以 Selector 开头
在 jQuery 上,“ Attribute Starts With Selector ”选择具有指定属性且其值正好以给定字符串开头的元素。
jQuery('[attribute^="value"]')
如果您想删除“id”以“ABC_”开头的 div,您的代码如下所示:
$('div[id^="ABC_"]').remove();
该文件在这里 http://api.jquery.com/attribute-starts-with-selector/
2. jQuery 属性以 Selector 结尾
类似地,“属性以选择器结尾”选择具有指定属性且其值恰好以给定字符串结尾的元素。
jQuery('[attribute$="value"]')
如果要删除 'id' 以“_ABC”结尾的 div,则代码如下所示:
$('div[id$="_ABC"]').remove();
该文件在这里 http://api.jquery.com/attribute-ends-with-selector/
3. jQuery 属性包含选择器
最后,“属性包含选择器”选择具有指定属性且值包含给定子字符串的元素。
jQuery('[attribute*="value"]')
如果要删除 'id' 包含“ABC”的 div,您的代码如下所示:
$('div[id*="ABC"]').remove();
我认为查询选择器最适合您
function myFunction()
{
var matchedElements = document.querySelectorAll("#myContainer div[id^='prefix']");
var forEach = Array.prototype.forEach;
forEach.call(matchedElements, function (el) { el.parentNode.removeChild(el); } );
}