Javascript 如何将document.getElementById与jquery选择器一起使用

Javascript 如何将document.getElementById与jquery选择器一起使用,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想去掉一些碎片。我试过了,如下所示。 但不起作用。为什么?如何解决呢 <div> <div id="idx1">child1 </div> <div id="idx2">child2</div> <div id="idx3">child3</div> ... <div id="/a/b/c">This should be last child</div> <

我想去掉一些碎片。我试过了,如下所示。 但不起作用。为什么?如何解决呢

<div>
  <div id="idx1">child1 </div>
  <div id="idx2">child2</div>
  <div id="idx3">child3</div>
  ...
  <div id="/a/b/c">This should be last child</div>
  <div id="idx4">Remove it.</div>
  <div id="idx5">Remove it.</div>
  <div id="idx6">Remove it.</div>
  ...
</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<script>

 // Since the id contains special chars,
 // javascript method has been used to get the element.
 lastChildObj = jQuery(document.getElementById('a/b/c')); 

 // I don't know how to remove the childs after lastChildObj.
 // I tried as given below.
 lastChildObj.filter('~').remove();

这应该适合您:

var base = document.getElementById('/a/b/c');
while(base.nextSibling){ // While the element has siblings
    base.parentElement.removeChild(base.nextSibling); // remove the siblings from the parent element.
}
您还可以稍微提高效率:

var base = document.getElementById('/a/b/c');
while(base.parentElement.removeChild(base.nextSibling))​ // Remove the nextSiblings while they exist.

这有两个关键步骤

选择要删除的图元 移除它们 步骤1可以分为两部分,获取对最后一个要保留的元素的引用,然后获取它后面的所有同级元素的列表。步骤2只使用.remove函数

$(document.getElementById('/a/b/c')).nextAll().remove();

首先,将id从/a/b/c更改为ie abc,然后运行以下命令

$("#abc").nextAll().each(function () { $(this).remove());});

您仍然可以对选择器使用jquery,但需要像这样转义id:

$("#\\/a\\/b\\/c")
然后,您只需选择以下任何div,如下所示:

$("#\\/a\\/b\\/c").nextAll().remove();
有关选择器中特殊字符的更多信息:

请尝试以下操作:

$("#\\/a\\/b\\/c").nextAll().remove();


jsIDLE:

此/a/b/c将始终位于第四位?ID和名称标记必须以字母[a-Za-z]开头,后面可以跟任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点。HTML4specification@MariusBalaban:也许他在使用HTML5-您知道,可以将jQuery与以下语法结合使用:$\\/a\\/b\\/c来检索元素@habeebeberwad在这里的特殊字符之前使用双反斜杠\\:/为了让jQuery理解……您应该更改选择器^ ^EricG,您应该更富有表现力。如果你认为我的帖子有问题,我希望你能用你的话解释一下,而不是发表晦涩的评论。@AnthonyGrist:$/a/b/cApologies,我认为这是显而易见的。Cerburs帮了你;$元素无效。如果作者发布了一个无效的选择器,我想这是解决方案的另一部分。@EricG,这是完全错误的;将DOM元素传递给jQuery函数以创建仅包含该元素的jQuery对象是完全有效的。你有没有见过这样做的jQuery代码?完全一样。阅读。哪个函数可以用来转义?你不使用任何函数,你只是像我一样双击反斜杠,看看小提琴在工作。这里有更多信息:id名称正在动态更新。所以我需要一个转义函数,比如转义。应该使用哪个函数来转义id名称?那么您可能需要编写自己的函数。据我所知,jQuery中没有允许您这样做的函数。如果我有两个id/a/b/c和/a/bc,会发生什么?请澄清为什么任何人都应该在html标记id中使用像“/”这样的特定字符?为什么我的答案被评为-2?我不明白。它是工作代码…在HTML5中,它允许有一个像/a/b/c这样的id,正如@Cerbrus所暗示的,我仍然不确定它在哪里that@MarcinBuciora这是你在StackOverflow的第一天。这就是你不理解它的原因:一两个月后,你就可以理解这些事情了。是的,你可以在html5中使用它,但你为什么要这样做?否决我的人能解释一下原因吗?如果我犯了错误,我想从中吸取教训;而是{}。哦,这和投票无关,它只是你答案的旁注。这个方法很好,因为它使用纯JavaScript。但是我更喜欢使用@Anthony Grist建议的jQuery方法。@Habeeberwad:我可以问一下为什么您更喜欢使用JQ方法吗?@Cerburs jQuery代码简单易懂。这在大多数浏览器中都适用。