Javascript 如何通过id和类获取元素

Javascript 如何通过id和类获取元素,javascript,html,class,dom,Javascript,Html,Class,Dom,对于document.getElementById(),是否有其他解决方案(JavaScript)选择特定元素,同时指定类和id 例如,我有这样一个内容: <a class="q_href" onclick="showQuestion(1)">Question 1:</a> <div class="q_content" id="1"></div> <a class="q_href" onclick="showQuestion(2)">

对于
document.getElementById(),是否有其他解决方案(JavaScript)
选择特定元素,同时指定类和id

例如,我有这样一个内容:

<a class="q_href" onclick="showQuestion(1)">Question 1:</a>
<div class="q_content" id="1"></div>

<a class="q_href" onclick="showQuestion(2)">Question 2:</a>
<div class="q_content" id="2"></div>
提前感谢。

由于ID始终是唯一的(除非您出错),您无需同时使用类和ID来选择元素。
这种方法是不正确的,应该不惜一切代价避免

我怀疑的是你的问题,身份证只是一个数字。尝试添加一个前缀,即字母。请查看此页面的源代码以查看示例

<a class="q_href" onclick="showQuestion(1)">Question 1:</a>
<div class="q_content" id="q1"></div>

<a class="q_href" onclick="showQuestion(2)">Question 2:</a>
<div class="q_content" id="q2"></div>

function showQuestion(id)
{
var thediv = document.getElementById("q"+id);
WriteQuestionIn(thediv); //Ajax
}

函数showQuestion(id)
{
var thediv=document.getElementById(“q”+id);
WriteQuestionIn(thediv);//Ajax
}

您可以尝试
document.querySelector()


document.querySelector(“.q#u content#2”)
使用para-like css选择器..

实际上jQuery中有一个函数
$
用于执行此操作。如果您使用的是任何框架,那么您应该记住始终有一个jQuery库可用。否则,如果您使用的是定制PHP,则添加其中一个,如jQuery或其他,因为它们提供了许多类型的选择器

下面是添加jQuery后的代码:

$(“#yourid”)//基本选择器
$(“#yourid.yourclass”).show()
使用
.show()
显示所选元素


使用
.hide()
隐藏元素

为什么?鉴于id应该是唯一的,它本身就足以选择一个元素。除非想法是选择它当且仅当它也有指定的类?在这种情况下,
document.queryselectoral(#id.class”)
应该这样做。您想实现什么?Id本身就足够了…你看到
.q#u content#2
#2
假设是相同的,对吗?对。。那是一样的。我同意你的回答。但如果他真的想这么做,他可以用这个…我误解了他的问题。我不知道id应该是唯一的。这就是为什么我问这个问题,以防还有id=“1”的其他元素。但你是对的,像“qcontent_1”这样的id会更好。谢谢id在页面中必须是唯一的,是的。否则,如果这个元素涉及复杂的JS/css,可能会发生意想不到的事情
<a class="q_href" onclick="showQuestion(1)">Question 1:</a>
<div class="q_content" id="q1"></div>

<a class="q_href" onclick="showQuestion(2)">Question 2:</a>
<div class="q_content" id="q2"></div>

function showQuestion(id)
{
var thediv = document.getElementById("q"+id);
WriteQuestionIn(thediv); //Ajax
}