我需要删除<div>
上的id
元素。我知道我可以使用诸如 -
function removeElement(div_id) {
var div = document.getElementById(div_id);
element.parentNode.removeChild(div);
}
但事实是id
- 复合。它由一个恒定的部分和每个请求中发生变化的部分组成。这部分是一组随机的数字。
我知道,在这种情况下我需要使用正则表达式。我非常感谢一个例子。
答案 0 :(得分:6)
以下是使用纯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);
}
});
在上面的示例中,将删除以foo
开头的所有div元素。
以下是一个示例:http://jsfiddle.net/UemQ5/
答案 1 :(得分:4)
您不必使用正则表达式,您可以根据需要使用这3个选择器中的一个:以开头,以结尾,或<强>包含即可。
以:$("[id^=item]")
结束于:$("[id$=item]")
包含:$("[id*=item]")
或者,如果它们不符合您的需求,那么这里还有更多:http://api.jquery.com/category/selectors/
答案 2 :(得分:2)
1. jQuery属性从选择器开始
在jQuery上,“使用选择器启动属性”选择具有指定属性的元素,其值始于给定字符串。
jQuery('[attribute^="value"]')
如果你想删除'id'以“ABC_”开头的div,你的代码是这样的:
$('div[id^="ABC_"]').remove();
该文件在这里 http://api.jquery.com/attribute-starts-with-selector/
2. jQuery属性结束于选择器
类似地,“带有选择器的属性末尾”选择具有指定属性的元素,其值完全以给定字符串结尾。
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();
答案 3 :(得分:1)
你可以使用jquery selector regex来解决它:)
读到这个: http://james.padolsey.com/javascript/regex-selector-for-jquery/
答案 4 :(得分:0)
答案 5 :(得分:0)
我认为查询选择器最适合你
function myFunction()
{
var matchedElements = document.querySelectorAll("#myContainer div[id^='prefix']");
var forEach = Array.prototype.forEach;
forEach.call(matchedElements, function (el) { el.parentNode.removeChild(el); } );
}