Javascript 基本JS+;WebDev帮助
我有个小问题。我有七个Javascript 基本JS+;WebDev帮助,javascript,dom,Javascript,Dom,我有个小问题。我有七个。从左到右计数 <select id="sel_1" onchange="evalonsubmit('sel_1',1);"> <select id="sel_2" onchange="evalonsubmit('sel_2',2);"> 这样从1到7 逻辑很简单。单击“检查值是否为-1”(如果为“禁用右侧的所有内容”),然后将其设置为-1。如果不是-1,则在单击的右侧启用该选项(+1) 这就是代码: function evalonsubmit
。从左到右计数
<select id="sel_1" onchange="evalonsubmit('sel_1',1);">
<select id="sel_2" onchange="evalonsubmit('sel_2',2);">
这样从1到7
逻辑很简单。单击“检查值是否为-1”(如果为“禁用右侧的所有内容”),然后将其设置为-1。如果不是-1,则在单击的右侧启用该选项(+1)
这就是代码:
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if(ElementID.value = -1) {
for (var i = n + 1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById();
newValue.disable = true;
newValue.value = -1
}
} else {
var newID = "sel_"+(n+1)
var newValue = document.getElementById();
newValue.disable = false;
}
}
函数evalonsubmit(ID,n)
{
var ElementID=document.getElementById(ID);
if(ElementID.value=-1){
对于(var i=n+1;i不太确定您想要什么,但它可能应该是:
if (ElementID.value == -1){
// ^--- two = , otherwise you assign the value
及
在else
分支中也是如此
除此之外,我会给你的变量起更多有意义的名字。例如,ElementID
让你假设值是一个ID。但它不是。它是一个DOM元素。对于newValue
我刚刚修复了你代码中的一些简单错误
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if (ElementID.value == -1){
for (var i=n+1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
newValue.disable = true;
newValue.value = -1
}
} else {
var newID = "sel_"+(n+1)
var newValue = document.getElementById(newID);
newValue.disable = false;
}
}
函数evalonsubmit(ID,n)
{
var ElementID=document.getElementById(ID);
if(ElementID.value==-1){
对于(var i=n+1;i您在对document.getElementById
的几次调用中丢失了参数,禁用
的属性是禁用,而不是禁用。您还可以在需要=
的地方使用=/code>
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if (ElementID.value == -1){
for (var i=n+1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
newValue.disabled = true;
newValue.value = -1;
}
} else {
var newID = "sel_"+(n+1);
var newValue = document.getElementById(newID);
newValue.disabled = false;
}
}
函数evalonsubmit(ID,n)
{
var ElementID=document.getElementById(ID);
if(ElementID.value==-1){
对于(var i=n+1;i为什么不这样做:
HTML:
这样就不需要
元素上的id
s,因为可以使用.nextSibling
抓取以下元素。nextElement()
函数用于避免抓取文本节点
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if (ElementID.value == -1){
for (var i=n+1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
newValue.disabled = true;
newValue.value = -1;
}
} else {
var newID = "sel_"+(n+1);
var newValue = document.getElementById(newID);
newValue.disabled = false;
}
}
<div class="wrapper">
<select onchange="evalonsubmit(this);" />
<select onchange="evalonsubmit(this);" />
<select onchange="evalonsubmit(this);" />
</div>
function nextElement(current)
{
do
current = current.nextSibling;
while (current && current.nodeType != 1);
return current;
}
function evalonsubmit(elem)
{
if(elem.value == -1)
while(elem = nextElement(elem)) {
elem.disabled = true;
elem.value = -1
}
else if(elem = nextElement(elem))
elem.disabled = false;
}