我正在尝试从字符串中删除特定字符,具体取决于下拉列表的选定值。
我想要实现的基本上,只有#lang.val()== en,删除addr字符串中的第一个逗号。
这是我到目前为止所拥有的。
$(document).ready(function() {
$('#mainaddress').change(function() {
var addr = $(this).find('option:selected').data('addr');
if ($('#lang').val() == 'fr') {
$('#theaddress').text(addr);
} else if ($('#lang').val() == 'en') {
addr.replace(new RegExp(","), '');
$('#theaddress').text(addr);
}
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<select id="lang">
<option disabled="1" selected="selected" class="succtext">language</option>
<option value="en">english</option>
<option value="fr">french</option>
</select>
</p>
<p>
<select id="mainaddress">
<option disabled="1" selected="selected">City</option>
<option value="" data-addr="11, abc, 90210">New York</option>
<option value="" data-addr="22, qwe, 57937">Toronto</option>
<option value="" data-addr="33, asd, 59384">Tokyo</option>
</select>
</p>
<p>
<span id="theaddress">-----</span>
</p>
如果在addr之后选择了lang怎么办?处理这个问题的最简单方法是什么?
答案 0 :(得分:2)
试试这个。它将处理选择addr后选择语言的情况。
$(document).ready(function() {
$("#lang").change(function(){
$('#mainaddress').trigger("change")
})
$('#mainaddress').change(function() {
var addr = $(this).find('option:selected').data('addr');
if(addr==undefined){
// do nothing
}
else if ($('#lang').val() == 'fr') {
$('#theaddress').text(addr);
console.log('FRENCH!');
} else if ($('#lang').val() == 'en') {
new_text = addr.replace(/,/, '');
$('#theaddress').text(new_text);
console.log('ENGLISH!');
}
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<select id="lang">
<option disabled="1" selected="selected" class="succtext">language</option>
<option value="en">english</option>
<option value="fr">french</option>
<option value="fr">spanish</option>
</select>
</p>
<p>
<select id="mainaddress">
<option disabled="1" selected="selected">City</option>
<option value="" data-addr="11, abc, 90210">New York</option>
<option value="" data-addr="22, qwe, 57937">Toronto</option>
<option value="" data-addr="33, asd, 59384">Tokyo</option>
</select>
</p>
<p>
<span id="theaddress">xxxxxxxxxx</span>
</p>
&#13;
答案 1 :(得分:0)
首先,检查字符串中是否有多个逗号,然后用空字符替换字符串中的逗号:
if (addr.match(/,.*,/)) { // Check if there are 2 commas
addr = addr.replace(',', ''); // Remove the first one
}
如果要替换字符串中的所有逗号,请使用带有g
标记的regular expression:
addr = addr.replace(/,/g , '');
$(document).ready(function() {
$('#mainaddress').change(function() {
var addr = $(this).find('option:selected').data('addr');
if ($('#lang').val() == 'fr') {
$('#theaddress').text(addr);
} else if ($('#lang').val() == 'en') {
if (addr.match(/,.*,/)) { // Check if there are 2 commas
addr = addr.replace(',', ''); // Remove the first one
//To replace all commas
//addr = addr.replace(/,/g , '');
}
$('#theaddress').text(addr);
}
})
});
$(".subSelect").change(function(){
$('#mainaddress').trigger("change")
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
<select id="lang" class="subSelect">
<option disabled="1" selected="selected" class="succtext">language</option>
<option value="en">english</option>
<option value="fr">french</option>
</select>
</p>
<p>
<select id="mainaddress">
<option disabled="1" selected="selected">City</option>
<option value="" data-addr="11, abc, 90210">New York</option>
<option value="" data-addr="22, qwe, 57937">Toronto</option>
<option value="" data-addr="33, asd, 59384">Tokyo</option>
</select>
</p>
<p>
<span id="theaddress">-----</span>
</p>
&#13;
要在语言之前选择地址来处理您的问题,您可以将所有未来事件绑定到.subSelect
类选择器。这意味着如果您添加其他选择项,则它们都会触发#mainaddress
的更改事件。