$("[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)`了。修改代码如下。
$("[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));
});
});
此时不再有链接长度变长的情况。