$("[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); } }); });
此时用浏览器调试发现,每选择一次下拉框就会导致链接字符串变长
这是因为在
(
t
h
i
s
)
调用不正确。在进入
‘
i
f
‘
字句后,
‘
(this)调用不正确。在进入`if`字句后,`
(this)调用不正确。在进入‘if‘字句后,‘(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)); }); });
此时不再有链接长度变长的情况。