以下代码可以正常工作,但我想让它变得更好:
function prodNameTrim(selector){
var el = document.getElementsByClassName(selector);
var len = el.length;
for(i = 0; i<len; i++){
aObj = el[i].getElementsByTagName('a');
txtNode = aObj[0].childNodes[0].nodeValue;
if(txtNode.length > 26){
txtNode = txtNode.substring(0, 27) + ' ...';
}
aObj[0].childNodes[0].nodeValue = txtNode;
}
}
我不喜欢的是,我首先在这样的条件之前建立 txtNode:
txtNode = aObj[0].childNodes[0].nodeValue;
在我通过条件处理变量以用省略号截断字符串后,我执行以下操作来替换 DOM 中的文本:
aObj[0].childNodes[0].nodeValue = txtNode;
我必须相信有更好的方法可以做到这一点,但我不确定那是什么,我觉得我好像违反了 DRY 规则。