我目前有一个div列表,这些div都有唯一的文本。我希望该网站显示您刚刚在另一个div中单击的div内的文本值。问题是,这个列表很长,我没有列表中任何值的特定ID。是否可以使用$(this).text
从该列表中提取文本?我无法让它发挥作用。
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Facilities Management</title>
<link rel='stylesheet' type='text/css' href='stylesheet.css'/>
<script type='text/javascript' src='script.js'></script>
</head>
<body>
<div class='wrap'>
<div class='banner'>Facilities Management</div>
<div class='menu1'>
<div class='menu2'> Where do you live? <br><br>
<div class='buildings'>building 1</div>
<div class='buildings'>building 2</div>
<!--- and so and so --->
</div>
</div>
<div class='main'>
<span id='jstext'></span>
</div>
</div>
</body>
</html>
JQuery的:
$(document).ready(function() {
$('.buildings').mouseenter(function() {
$(this).css('background-color','#D8BFD8');
});
$('.buildings').mouseleave(function() {
$(this).css('background-color','#F0EAD6');
});
$('.buildings').click(function() {
var $buildingName = $(this).text;
$('span').text($buildingName);
});
});
答案 0 :(得分:3)
text()是一个函数,你需要调用它来获取被点击元素的文本
var $buildingName = $(this).text();// <-- () at the end
$('span').text($buildingName);
您的代码可以重写为
jQuery(function ($) {
//these selectors are executed only once
var $span = $('#jstext');
$('.buildings').hover(function () {
$(this).css('background-color', '#D8BFD8');
}, function () {
$(this).css('background-color', '#F0EAD6');
}).click(function () {
var buildingName = $(this).text();
$span.text(buildingName);
});
});
演示:Fiddle
答案 1 :(得分:0)
您已使用text
作为财产。它是一个函数,所以像text()
var $buildingName = $(this).text();
答案 2 :(得分:0)
是啊... text是一个函数,使用$(this).text();