次のコードは問題なく動作しますが、改善したいと思います。
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ルールを破っているように感じます.