悠悠楠杉
网站页面
正文:
在jQuery开发中,操作表单元素的值是高频需求,但新手常混淆.val()和.text()的使用场景。这两种方法看似相似,实则针对完全不同的DOM操作场景。理解它们的差异,能显著提升代码的准确性和性能。
.val()方法input、select、textarea等元素的值属性(value属性)。例如:// 获取输入框的值
let username = $('#username').val();
// 设置下拉框的值
$('#country').val('china');.text()方法div、p、span等。例如:// 获取段落文本
let intro = $('#intro').text();
// 修改标题文本
$('h1').text('新标题');.text()获取输入框内容:// 错误!返回空字符串
let password = $('#password').text();反之,用.val()操作非表单元素也会失败:
// 错误!无法修改div内容
$('#alert').val('警告');.val()实时反映用户输入,即使DOM未更新;.text()仅返回初始加载时的文本,不监听动态变化。.val()实现下拉框联动(如省市区选择):$('#province').change(function() {
let province = $(this).val();
$('#city').val(province + '市');
});.text()防止XSS攻击(自动转义HTML标签):// 安全渲染用户输入
$('#comment').text('<script>恶意代码</script>');
// 输出为纯文本,而非执行脚本.val()直接赋值而非触发事件;.text()替代.html()避免解析开销。