javascript
$("[name='cmbTargetAssLangs']").on('change', function () {
var val = $(this).find("option:selected").val();
$("#hdTargetAssLangId").val(val);
var children = $(this).parent().next().children();
$.each(children,function(i,item){
if($(this).attr('href').indexOf('Translation')>0){
var orgin = $(this).attr('href');
orgin = orgin.toString()+'/'+val.toString();
$(this).attr('href',orgin);
}
});
});
此时用浏览器调试发现,每选择一次下拉框就会导致链接字符串变长
这是因为在Javascript
中的 ( t h i s ) 调用不正确。在进入 ' i f ' 字句后, ' (this)调用不正确。在进入`if`字句后,` (this)调用不正确。在进入'if'字句后,'(this)已经不是以前的那个
$(this)`了。修改代码如下。
javascript
$("[name='cmbTargetAssLangs']").on('change', function () {
var val = $(this).find("option:selected").val();
$("#hdTargetAssLangId").val(val);
var children = $(this).parent().next().children();
$.each(children,function(i,item){
var link = $(this).attr('href');
var index = link.indexOf('Translation')
if (index > 0) {
var endIndex = link.lastIndexOf('/');
link = link.substring(0, endIndex);
link = link + '/' + val.toString();
$(this).attr('href', link);
console.log($(this).attr('href', link));
});
});
此时不再有链接长度变长的情况。