在jQuery中,可以根据textarea元素的值(value)来选择和操作这些元素。这与通过ID、类名或其他属性选择元素类似,但需要特定的选择器和方法来处理元素的值。
:contains()
选择器// 选择包含特定文本的textarea
$('textarea:contains("特定文本")').css('background', 'yellow');
注意::contains()
选择器会匹配包含指定文本的所有元素,包括部分匹配。
.filter()
方法进行精确匹配// 精确匹配textarea的值
$('textarea').filter(function() {
return $(this).val() === "精确值";
}).css('border', '2px solid red');
.filter()
方法进行模糊匹配// 模糊匹配textarea的值
$('textarea').filter(function() {
return $(this).val().indexOf("部分文本") !== -1;
}).addClass('highlight');
// 匹配设置了value属性的textarea(注意:这匹配的是初始值,不是当前值)
$('textarea[value="初始值"]').css('color', 'blue');
:contains()
选择器对大小写敏感.val()
获取的是当前值,而[value]
属性选择器匹配的是初始HTML属性值.filter()
方法可能比:contains()
更高效.filter()
中使用正则测试<!DOCTYPE html>
<html>
<head>
<title>jQuery根据值选择textarea示例</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
.highlight {
background-color: #ffeb3b;
}
.error {
border: 2px solid red;
}
</style>
</head>
<body>
<textarea id="text1">这是一段示例文本</textarea>
<textarea id="text2">另一段文本</textarea>
<textarea id="text3">示例</textarea>
<textarea id="text4" value="初始值"></textarea>
<script>
$(document).ready(function() {
// 1. 使用:contains选择包含"示例"的textarea
$('textarea:contains("示例")').addClass('highlight');
// 2. 精确匹配值为"另一段文本"的textarea
$('textarea').filter(function() {
return $(this).val() === "另一段文本";
}).addClass('error');
// 3. 匹配初始值属性
$('textarea[value="初始值"]').css('color', 'green');
});
</script>
</body>
</html>
问题1:选择器没有生效
$(document).ready()
中执行问题2::contains()
匹配了不需要的元素
:contains()
是部分匹配.filter()
进行精确匹配问题3:[value]
选择器不起作用
.val()
获取当前值进行匹配