5

我有几个span标签,具有相同的类。每个span人都有它唯一的 id。现在我想获取点击span类的内容和 id。

我发现了如何处理班级的 id,但我似乎无法获得<span></span>标签之间的内容。我试过this.html(), this.htmlthis.textthis.tex()我无法得到文本。

$(".row").click(function() {
    alert(this.id);
    alert(this.html);
}

HTML:

<div>
    <span class="row" id="1">Username of user 1</span>
    <span class="row" id="2">Username of user 2</span>
<div>
4

8 回答 8

4

id的 's 无效(它们不能以数字开头),因此请更改它们并尝试此操作

<div id="parent">
    <span class="row" id="s1">Username of user 1</span>
    <span class="row" id="s2">Username of user 2</span>
    ...
</div>

jQuery

$("#parent").on('click', '.row', function() {
    alert(this.id);
    alert(this.innerHTML);
});

这样做你将使用event delegation,捕获父级上的点击事件并只定义一次处理程序(而不是昂贵的,对于每个span

于 2012-05-30T07:57:46.953 回答
3

利用.html()函数你会得到元素的内容

$(".row").click(function() {
    alert(this.id);
    alert($(this).html());
});

工作演示

于 2012-05-30T07:53:37.117 回答
2

您可以使用innnerHTML,但您);最后错过了。

$(".row").click(function() {
    alert(this.id);
    alert(this.innerHTML);
});
于 2012-05-30T07:56:22.070 回答
2

看这里。http://jsfiddle.net/2aA92/1/

$(".row").click(function() {
  alert(this.id);
  alert($(this).text());
});​
于 2012-05-30T07:58:05.817 回答
1
id = $(this).attr('id');
html = $(this).html();
于 2012-05-30T07:53:48.110 回答
0

尝试这个:

window.onload = function() {
  $(".row").click(function() {
    alert(this.id);
    alert($(this).html());
  });
}
于 2012-05-30T08:05:30.500 回答
0
$(".row").click(function() {
    alert(this.id);
    alert($(this).text()); // or this.innerHTML
}
于 2012-05-30T07:53:54.100 回答
0

你需要这个:

$(".row").click(function() {
    alert($(this).attr('id'));
    alert($(this).html());
}

<div>
    <span class="row" id="1">Username of user 1</span
    <span class="row" id="2">Username of user 2</span
<div>
于 2012-05-30T07:54:22.750 回答