3

我需要删除其 <div>上的元素id。我知道我可以使用以下功能 -

function removeElement(div_id) {
   var div = document.getElementById(div_id);
   element.parentNode.removeChild(div);
}

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

我知道,在这种情况下我需要使用正则表达式。举个例子,我将不胜感激。

4

6 回答 6

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);
    }
});​

在上面的示例中,所有以 id 开头的 div 元素都foo将被删除。这是一个例子:http: //jsfiddle.net/UemQ5/

于 2012-12-19T09:50:22.810 回答
3

您不必使用正则表达式,您可以使用这 3 个选择器之一,具体取决于您的需要:以 开头以 结尾contains

以。。开始:$("[id^=item]")

以。。结束:$("[id$=item]")

包含:$("[id*=item]")

或者,如果它们不适合您的需求,这里还有更多:http: //api.jquery.com/category/selectors/

于 2012-12-19T09:50:09.607 回答
1

您可以使用 jquery 选择器正则表达式来解决它:)

阅读:http: //james.padolsey.com/javascript/regex-selector-for-jquery/

于 2012-12-19T09:46:23.423 回答
1

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

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

于 2012-12-19T09:49:37.800 回答
0

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

在这里查看更多信息。

于 2012-12-19T09:49:27.010 回答
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/

于 2012-12-19T10:13:40.340 回答