我有以下简单的 Html 代码,其中包含 2 个具有相同选项值的 SELECT 表单:
<select id="first">
<option value="none">None</option>
<option value="one">Toyota</option>
<option value="two">Nissan</option>
</select>
<select id="second">
<option value="none">None</option>
<option value="one">Toyota</option>
<option value="two">Nissan</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我正在编写一个jquery脚本,它应该执行以下操作:如果在#first选择中我选择除“none”之外的任何值,例如丰田,它将自动从#second选择中消失:
<select id="second">
<option value="none">None</option>
<option value="two">Nissan</option>
</select>
Run Code Online (Sandbox Code Playgroud)
此外,如果我在#second选择中选择Nissan(假设#first仍然选择了丰田),它应该自动从#first选择中消失:
<select id="first">
<option selected="selected" value="one">Toyota</option>
<option value="none">None</option>
</select>
Run Code Online (Sandbox Code Playgroud)
最后,当我在任何选择表单中将选择器重置为“无”时,它应该在同一位置的另一个选择中重新创建该选项。
怎样才能更好地实现呢?使用 .remove()/.append() 操作还是 .hide()/.unhide() 更好?到目前为止,我创建了以下代码片段:
$(document).on('change','select', function() {
var sel = $(this).attr('id');
var val = $(this).val();
if ( sel === "first" && val != "none") {
$("#second option[value="+val+"]").remove();
} else if ( sel === "second" && val …Run Code Online (Sandbox Code Playgroud) 我有以下示例perl脚本:
use warnings;
use strict;
my $cont1 = 'item:test';
my $cont2 = 'item:test';
$cont1 =~ s/item:(.*)/$1/; my $one = $1;
$cont2 =~ s/dtms:(.*)/$1/; my $two = $1;
print "one = $one\ntwo = $two\n";
Run Code Online (Sandbox Code Playgroud)
这个脚本exec的结果:
one = test
two = test
Run Code Online (Sandbox Code Playgroud)
问题是在第一次成功的正则表达式匹配后$ 1没有被重置,因为第二个正则表达式实际上是失败的并且应该是空的,而是从前一个匹配中获取$ 1的值.我找到了一个奇怪的解决方法,通过在第一个正则表达式后添加奇数正则表达式来重置$ 1 =
"1" =~ /1/;
Run Code Online (Sandbox Code Playgroud)
结果现在正确:
one = test
two =
Run Code Online (Sandbox Code Playgroud)
问题是:重置1美元是最佳做法吗?