Javascript Can';不要让jQuery动态选择器工作
我正在编写一个看似简单的脚本,让按钮在视图中切换div。我以前也这样做过,但这次我在jQuery中使用了动态选择器,看不出哪里出了问题 如果我将调用设为静态调用(即:“#liste_21”),它会像一个符咒一样工作,但由于项目的数量现在不是提前的,我更希望动态版本能够工作 知道怎么了吗 JavascriptJavascript Can';不要让jQuery动态选择器工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在编写一个看似简单的脚本,让按钮在视图中切换div。我以前也这样做过,但这次我在jQuery中使用了动态选择器,看不出哪里出了问题 如果我将调用设为静态调用(即:“#liste_21”),它会像一个符咒一样工作,但由于项目的数量现在不是提前的,我更希望动态版本能够工作 知道怎么了吗 Javascript $(document).ready(function() { $(".jour").click(function() { var jour =
$(document).ready(function() {
$(".jour").click(function() {
var jour = $(this).text();
$('#liste_'+jour).slideToggle();
});
});
HTML
<div id="calendrierActivites">
<div id="nov20" class="jour">
<span>20</span>
</div>
<div id="nov21" class="jour">
<span>21</span>
</div>
<div id="nov22" class="jour">
<span>22</span>
</div>
</div>
<div id="liste_20">
<h2>20 novembre</h2>
</div>
<div id="liste_21">
<h2>21 novembre</h2>
</div>
<div id="liste_22">
<h2>22 novembre</h2>
</div>
20
21
22
11月20日
11月21日
11月22日
$(this).text()
将获取div
中的文本,类为jour
,您使用了错误的选择器。jQuery文档
由于不同浏览器中HTML解析器的不同,返回的文本可能在换行符和其他空白处有所不同
您可以简单地删除空白:
var jour = $(this).text().trim();
你需要调整焦耳值 小提琴手: JS:
$(this).text()
=>打印多余的空格。尝试trim()
它:$(this).text().trim()
这就完成了。谢谢!知道跨度为什么要添加空白字符吗?@four关于修剪字符串的建议也起到了作用,所以我想知道到底添加了什么。在每个.jour
div中,都有换行符和制表符,
元素周围也可能有空格。在您的范围内没有任何这些,因此从中抓取会更安全一些!这不是跨度.text()
实际上获取父元素的所有子代文本,包括该元素末尾的行终止符和空格。这就是为什么选择“span”元素并获取其文本值更安全的原因
var jour = $(this).text().trim();
$(document).ready(function() {
$(".jour").click(function() {
var jour = $(this).text();
$('#liste_'+$.trim(jour)).slideToggle();
});
});