我有以下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);
但它不起作用。
答案 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
。