使用jQuery时文本没有按预期更新
Text not updating as expected using jQuery
我想知道是否有人可以向我解释一下这里发生了什么?
var testNo = $("#test").text()
$("ul li a").click(function() {
$("#test").text($(this).text());
console.log(testNo)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<a href="#" id="test">1</a>
<ul>
<li>
<a href="#" >1</a>
</li>
<li>
<a href="#">2</a>
</li>
<li>
<a href="#" >3</a>
</li>
</ul>
</li>
</ul>
这是奇怪的,我为什么这不会更新列表项,当你点击使用此方法。但是,如果您将javascript更改为;
$("ul li a").click(function() {
var testNo = $("#test").text()
$("#test").text($(this).text());
console.log(testNo)
})
将值显示为1,但将后面的值设置为;
$("ul li a").click(function() {
$("#test").text($(this).text());
var testNo = $("#test").text()
console.log(testNo)
})
,它具有期望的行为。
是否有一种方法来实现这最后一个代码片段给我,但通过使用第一个代码格式?
让我知道有什么不对劲,
谢谢
您需要更新testNo变量文本,然后只有它会显示最新的文本。试一试:
var testNo = $("#test").text()
$("ul li a").click(function() {
testNo = $(this).text();
$("#test").text($(this).text());
console.log(testNo)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<ul>
<li>
<a href="#" id="test">1</a>
<ul>
<li>
<a href="#" >1</a>
</li>
<li>
<a href="#">2</a>
</li>
<li>
<a href="#" >3</a>
</li>
</ul>
</li>
</ul>
这都是关于您何时获得$('#test').text()
的值—因为您随后将继续更改源值。
代码做两件事:(1)它读取#test并将其值存储为testNo,(2)它从单击的锚标记中获取文本并将该值放入#test。所以有两件事改变了:var testNo和#test.
如果你把#test的值保存为var testNo,然后在显示testNo之前改变#test的值,它们会有不同的值。
我认为你应该这样做:
$("ul li a").click(function() {
var testNo = $(this).text()
$("#test").text(testNo);
console.log(testNo)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<a href="#" id="test">1</a>
<ul>
<li>
<a href="#" >1</a>
</li>
<li>
<a href="#">2</a>
</li>
<li>
<a href="#" >3</a>
</li>
</ul>
</li>
</ul>
在你的第一个代码testNo是全局设置的,并在第二和第三个页面加载时取值,它是本地设置的,因此值在每次点击事件时改变,
在第二行中,值是在文本更改之前递增的所以它捕获了之前更改过的值,第三行是在文本保存之后保存值testNo显示更新后的值
相关文章:
- jQuery-更新jQuery.ajax().done()中点击的图像
- 如何更新jQuery Mobile全局弹出窗口的位置
- 更新jquery后文件上传不起作用
- 在ReactJs中更新组件时更新jQuery slick carousel
- 拖动事件后更新jQuery中jqxListBox的列表
- 如何停止将值追加到仅更新 jQuery 中的值
- 无法多次更新 jQuery 中 Ajax 调用的全局变量
- 使用 google api 地址更新 jQuery jqgrid 列
- 使用 Angular JS 动态更新 jQuery UI 属性的最佳方法
- 更新 jQuery 中的全局变量
- 如何在键入时更新 jQuery 值
- 尝试使用 mysql 和 php 更新 jquery 变量
- 更新 jQuery UI 工具提示上的数字
- 动态更新jquery中的iframe内容
- 更新jquery插件选项而不刷新页面
- 如何使用客户端数据更新jQuery.dataTables中的所有数据
- 以编程方式根据值更新jQuery滑块的位置
- ASP.NET:如何更新JQuery或Javascript中的隐藏字段
- 更新:jquery对话框模式单选按钮未选择ajax
- 在Ajax调用期间更新jQuery项