Javascript 在div中选择范围值

Javascript 在div中选择范围值,javascript,jquery,Javascript,Jquery,假设我有 <div id="1"> <span id="name">Josh</span> <div id="quote">Run</div> </div> <div id="2"> <span id="name">Mark</span> <div id="quote">Run</div> </

假设我有

    <div id="1">
    <span id="name">Josh</span>
    <div id="quote">Run</div>
    </div>

    <div id="2">
    <span id="name">Mark</span>
    <div id="quote">Run</div>
    </div>
在#name之前添加#1将选择第一个div

$("#quote").click(function(){
     var name = $('#1 #name').html();
});


首先,
id
在html文档中必须是唯一的。因此,理想情况下,您需要将div中的那些id更改为
。其次,
id
不能以数字开头,因此需要更改div id以字母或下划线开头

考虑到这一点,鉴于这种结构:

<div id="one">
    <span class="name">Josh</span>
    <div class="quote">Run</div>
</div>

<div id="two">
    <span class="name">Mark</span>
    <div class="quote">Run</div>
</div>

这应该适合您:

$("#1 span").text();
但是,您的HTML有一些问题。HTML中不应该有任何重复的ID,它们必须是唯一的。ID也不应该以数字开头


您可以在此处查看小提琴:

id
在页面中应该是唯一的。您应该将
名称
引号
id更改为类,它们不必是唯一的

<div id="1">
    <span class="name">Josh</span>
    <div class="quote">Run</div>
</div>

<div id="2">
    <span class="name">Mark</span>
    <div class="quote">Run</div>
</div>

您还应牢记,
id
不应以数字开头(HTML5中除外)

您也可以通过以下方式选择div#1的第一个span标记内容:

var name = $("#1 span:first").html();

您不能有任何重复的标记(
id=“name”
)-所有id必须是唯一的。请避免有重复的id。值得注意的是,虽然有些浏览器允许您使用数字ID,但W3C规范明确指出您不应该使用数字ID,因此您不能指望所有浏览器都允许使用数字ID。谢谢。是否可以根据您的示例确定单击哪个运行?例如,如果单击quote div,我是否能够捕获名称span?我假设这是可能的,因为父div是唯一的。@domino只需使用
this
并在
单击
处理程序中进行一点DOM遍历:
var name=$(this.parent().find('span.name').text()这里有什么问题??:-O
$("#quote").click(function(){

    var name = $('#one .name').html();

}); 
$("#1 span").text();
<div id="1">
    <span class="name">Josh</span>
    <div class="quote">Run</div>
</div>

<div id="2">
    <span class="name">Mark</span>
    <div class="quote">Run</div>
</div>
$('#1 .name')
var name = $("#1 span:first").html();