如何在特定DIV块中使用JS或JQuery获取ID元素

5

我只是想要一种快速/简单的方法来检查特定元素(在这种情况下是div)上是否存在ID。

似乎找不到此类代码示例..我使用jquery,但我认为我不需要在这个问题上使用jquery,只需要基本的getElement..但我需要将搜索隔离在一个div块内..因为ID确实存在于页面上的其他元素中,但我需要知道它是否存在于特定区域/div中。

所以不仅仅是

document.getElementById(target_id);

我需要类似以下的东西:
divName.getElementById(target_id);

或者

$("document.divName").getElementById(target_id);

或者

$(".divName").document.getElementById(target_id);

好像找不到适合的解决方案。


5
在一个页面上不应该有两个拥有相同id的元素;也许你会想重新考虑你的计划? :) - Ja͢ck
1
var mySubDiv = parentDiv.querySelector("#subDivId") - reuns
5个回答

17

每个ID应该是唯一的,页面上没有两个元素可以拥有相同的ID。您可以在具有特定ID的div中搜索某些类别的元素。

$('#divId .someClass')

或者使用 find()

$('#divId').find('.someClass')

或使用上下文jQuery(选择器 [, 上下文])

$('.someClass', $('#divId'))

1
谢谢提供代码示例,我明白了。是的,我并不打算在同一页中使用两个相同的ID...我设计的系统可能会在特定的div区域中使用ID,因此我需要检查哪个div具有它,以便处理我的例程的其余部分...我可以在每个div区域上使用不同的属性名称,但我喜欢保持标准,只使用"id"而不是"id_div1"和"id_div2"等 :)还是感谢您的提醒 :) - BrownChiLD

12
    var mySubDiv = myParentDiv.querySelector("#mySubDivId")

等同于

    var mySubDiv = document.querySelector("#myParentDivId #mySubDivId"); 
    // don't forget the space :  #myParentDiv#mySubDivId won't work

在这里,querySelectorquerySelectorAll是非常有用的函数,足以让我避免使用jQuery。它们接受任何css选择器。在现实生活中,对于不同的DOM元素使用相同的ID是很常见的。

2
非常有用的技巧!谢谢var x = document.querySelector("#parent").querySelector("#child"); - Boontawee Home
我更喜欢这个,因为它是纯JS解决方案(不使用jQuery) - BradGreens

2

id 应该是唯一的,你可以使用以下方法检查元素:

$(".your_parent_div").find("div#some_unique_id");

0

你可以在getElementsByTagName或ClassName中使用它,但ID在整个文档中是唯一的,所以不需要这样做。最好使用一个特殊的ID。 并且在每个ID中定义为javascript中的元素,你只需要编写ID的名称并使用它,就像这样: ID.style.color = red;


-3
根据我对你问题的理解,当你执行时,你使用了两个具有相同名称的ID,它只会采用第一个ID,所以你要求从特定的div中获取ID,那么这是一种糟糕的编码方式,如果想要使用相同的名称,最好使用类。 你问题的解决方案是 - 这个 ->
    var someDiv = document.getElementsByClassName("divName");
    var someId = someDiv[0].getElementById("target_id");

2
这将抛出一个异常。getElementByClassName不存在,应该是getElemenstByClassName(复数!)。如果你修复了它,它会抛出另一个异常。getElementByIddocument对象上的一个方法,仅限于document对象。它不会出现在div元素上。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接