如何修改jqxTextArea的字体大小且避免被jQuery覆盖?
解决jqxTextArea字体大小被jQuery覆盖的问题
我明白你现在的困扰——想用jqxTextArea做只读的统计摘要展示AJAX更新的数据,但设置的18px字体总是被jQuery的.css方法覆盖。这里有几个靠谱的解决办法,你可以根据自己的情况选:
方法1:用高优先级的CSS选择器(推荐)
直接给jqxTextArea生成的实际文本区域写更具体的CSS,避免被插件的默认样式覆盖。比如:
/* 假设你的jqxTextArea的id是statsSummary */ #statsSummary .jqx-textarea-content { font-size: 18px; }
如果还是被覆盖,就加!important强制生效(尽量少用,但这里针对特定场景没问题):
#statsSummary .jqx-textarea-content { font-size: 18px !important; }
原理:jqxTextArea初始化后会生成嵌套的DOM结构,直接给父div加样式不会作用到内部的文本区域,必须选中实际承载文本的那个子元素。
方法2:在AJAX更新完成后重新设置字体
既然AJAX更新会触发组件的重新渲染,那我们就在数据加载完成后,手动设置字体大小:
// 你的AJAX请求示例 $.ajax({ url: 'your-api-url', success: function(data) { // 更新jqxTextArea的内容 $('#statsSummary').jqxTextArea('val', `性别:${data.gender}\nGPA:${data.gpa}`); // 重新设置字体大小,覆盖插件的默认值 $('#statsSummary .jqx-textarea-content').css('font-size', '18px'); } });
这样每次数据更新后,都会强制把字体改成18px,不会被插件的动态样式覆盖。
方法3:修改jqxWidgets的主题样式
如果你的项目里全局用jqx的主题,可以找到主题文件中关于jqxTextArea的字体设置,直接修改默认值。比如在jqx.base.css或者你用的主题css里,找到类似这样的代码:
.jqx-textarea-content { font-size: 11px; /* 其他样式 */ }
把11px改成18px,这样所有jqxTextArea都会默认用18px字体,一劳永逸。
另外,记得确保你的jqxTextArea设置了readonly: true,避免用户编辑,符合你做文本摘要的需求:
$('#statsSummary').jqxTextArea({ readonly: true, // 其他配置项 });
内容的提问来源于stack exchange,提问作者Jeffrey M
相关产品推荐
相关产品推荐

