获取包含已点击链接的DIV的文本

时间:2013-12-10 05:18:54

标签: javascript jquery

我有以下JS:

  $(document).on("click", '.like', function (e) {

      $(this).parent().html("<a href = '#' class = 'unlike'><div class = 'heart'></div></a>");
      return false;
  });

  $(document).on("click", '.unlike', function (e) {

      $(this).parent().html("<a href = '#' class = 'like'><div class = 'coal'></div></a>");
      return false;
  });

我也有以下html:

                  <div>
                   45
                    <a href = "#" class = 'unlike'>

                        <div class = "heart"></div>
                    </a>
                  </div>  

我试图使用JS将整数45返回到控制台,但我无法这样做。 45是在div中。我试图让它返回点击使用父/子或下一个关于现有的html.Any建议如何做到这一点?

我试过

    id = $(this).parent().text;
    console.log(id);

但它不起作用。

5 个答案:

答案 0 :(得分:3)

如果你正在使用chrome dev工具或firebug:

console.log(value);

在Internet Explorer中,您需要启动开发工具并刷新页面,否则console.log将无效。

返回<div>中没有id标记的值:

$(document).on("click", '.like', function (e) {

  $(e.target).parent().html("<a href = '#' class = 'unlike'><div class = 'heart'></div></a>");
  console.log($(e.target).text());
  return false;
});

答案 1 :(得分:0)

text是一种方法,而不是属性,您必须将其称为函数。

var value = $(this).parent().text();
console.log(value);

答案 2 :(得分:0)

试试这个

var value = $(this).parent().text();
alert($(this).parent().text()); //Alert 45
console.log(value);//print 45 in Console

答案 3 :(得分:0)

使用

console.log( $(this).parent().text().trim());

答案 4 :(得分:0)

使用toggleClass方法使用单个事件处理程序的方法如何:

$(document).on("click", '.like, .unlike', function (e) {
    $(this).toggleClass('like unlike');
    alert(this.previousSibling.nodeValue);
    return false;
});

我们可以使用普通的旧javascript将以前的文本节点值设为this.previousSibling.nodeValue

演示http://jsfiddle.net/Q69Bb/