如何通过jQuery实现div内容为Green时添加green类,其余div不做处理?
原有代码存在的问题
- 普通DOM元素不能调用
val()方法读取内容:val()仅适用于 input、textarea 等表单控件,读取div文本需要用text()方法 - 没有对所有div做逐个判断:直接对
$("div")全选集合做判断,默认只会读取第一个div的文本值,执行addClass时也会给所有选中的div统一加类,无法实现按需匹配的效果
正确实现代码
方案1:遍历所有div逐个判断
$("div").each(function() { // 加trim()是为了避免内容首尾存在空格、换行符导致匹配失败 if ($(this).text().trim() === "Green") { $(this).addClass("green"); } });
方案2:用filter过滤符合条件的元素(更简洁)
$("div").filter(function() { return $(this).text().trim() === "Green"; }).addClass("green");
内容的提问来源于stack exchange,提问作者user3108268
相关产品推荐
相关产品推荐

