JavaScript - 按部分ID删除元素

时间:2012-12-19 09:43:52

标签: javascript html

我需要删除<div>上的id元素。我知道我可以使用诸如 -

之类的功能
function removeElement(div_id) {
   var div = document.getElementById(div_id);
   element.parentNode.removeChild(div);
}

但事实是id - 复合。它由一个恒定的部分和每个请求中发生变化的部分组成。这部分是一组随机的数字。

我知道,在这种情况下我需要使用正则表达式。我非常感谢一个例子。

6 个答案:

答案 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();

该文件在这里 http://api.jquery.com/attribute-contains-selector/

答案 3 :(得分:1)

你可以使用jquery selector regex来解决它:)

读到这个: http://james.padolsey.com/javascript/regex-selector-for-jquery/

答案 4 :(得分:0)

使用JQuery,您可以通过部分ID获取元素

查看here以获取更多信息。

答案 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); } );

}

http://jsfiddle.net/KLVP5/1/