如何通过嵌套在另一个div中的id选择div?

时间:2014-12-04 15:49:51

标签: javascript jquery html

现在我有一些html看起来像这样一旦渲染。

<div id="MyPartial">
    <div id="div+1"></div>
    <div id="div+2"></div>
    <div id="div+3"></div>
</div>

MyPartial div中的所有div都是动态的。所以可能有3个,或者可能没有。我试图通过ID一次删除一个。

$("#div+" + Id).remove() 

这没有用,所以我尝试了这个

$("#MyPartial").children().select("#div+" + Id).remove();

这将删除整个“MyPartial”。 DIV。

我错过了什么?在过去,第一个声明对我来说一直很好,但看起来嵌套现在搞乱了。

编辑:加号让我搞砸了。我把它改成了下划线,它运行正常。谢谢大家。

8 个答案:

答案 0 :(得分:4)

请勿在您的ID中使用加号(+)!它是一个选择器(见http://api.jquery.com/next-adjacent-Selector/

如果你真的想在你的is中使用加号,你应该逃避它(参见http://api.jquery.com/category/selectors/

示例:

$('#div\\+1').remove();

答案 1 :(得分:2)

class-和id-attributes中不允许+。在CSS +中有一个选择器含义。这意味着:选择下一个邻居元素。

也许这就是为什么jQuery无法选择你的元素。尝试为您的ID指定其他名称,例如div_1,&#39; div_2`,...

之后您可以按其ID $('#div_1')选择一个元素。

由于ids在整个文档中应该是唯一的,因此该选择器应与$('#myPartial #div_1')

相同

答案 2 :(得分:1)

使用$("#div+" + Id).remove()

话虽这么说,ids总是独一无二的。或者他们应该。所以,没有必要在父母中找到。见

  

7.5.2元素标识符:id和class属性   属性定义   id = name [CS]   此属性为元素指定名称。该名称在文档中必须是唯一的。

请参阅the refference

编辑:基于评论,说这不起作用并且正常工作

是正确的
  

$( '#DIV \\ + 1')除去();

再说一遍,请参阅this question,虽然我的理解并不禁止加号,但jquery存在问题。如果可能的话,我会删除加号,如果没有,则使用转义版本。

答案 3 :(得分:0)

试试这个

$("#MyPartial #div+" + Id).remove();

答案 4 :(得分:0)

ID应始终是不同的......

尝试制作课程,然后您可以使用$("#MyPartial .div+" + Id)

如果div+1是一个id两次,则只能访问第一个。

如果ID真的是唯一的(DISTINCT),那么只需使用$("#div+1")

答案 5 :(得分:0)

ID在页面中应该始终是唯一的,您不必担心其父

$("#div+" + Id).remove() 

答案 6 :(得分:0)

实际上问题是jquery将逃脱加号.. 如果你做了像

这样的事情怎么办?

$(的document.getElementById(同上))。除去()

答案 7 :(得分:0)

你的代码有两个问题。你忘了把id选择器&#34;#&#34;在div选择器前面。 2. id不能包含&#34; +&#34;。我用&#34; - &#34;取而代之。它运作得很好。

&#13;
&#13;
var Id = "1";
$("#div-" + Id).remove()
&#13;
div {
  
  background: blue;
  
  }

div > div {
  
  background: red;
  width: 100px;
  height: 100px;
  display: inline-block;
  
  }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="MyPartial">
    <div id="div-1">1</div>
    <div id="div-2">2</div>
    <div id="div-3">3</div>
</div>
&#13;
&#13;
&#13;