我需要在我和声明中添加i3c。我不知道正确的语法。这段代码坏了。匿名功能会更好吗?因此,如果c0()通过,c4()运行,如果c4()通过,我需要运行i3c()或运行i3c中的内容。
function o1(a,b)
{
document.getElementById(a).value=b;
}
function i3()
{
var a=document.forms['f3'].elements,b='f3e';
c0(a,'Please enter both a tile and a url',b)&&c4(a[2],'Please enter a valid url',b)&&d0()&&s0('pi3a.php',is('f3'),s2);
o1(f3aa,'');o1(f3bb,'');
}
function d0()
{
var a=document.getElementById('Bb1c'),
b=document.createElement('a'),
c=document.forms['f3'].elements;
b.href=c[2].value;
b.name="a1";
b.className ="b";
b.innerHTML = c[1].value;
a.appendChild(b);
return 1;
}
答案 0 :(得分:1)
&& (逻辑AND运算符)从左到右处理。如果任何表达式返回false,则返回该值。如果除最后一个之外的所有都返回true,则返回最后一个表达式的值(无论是true还是false)。
所以如果没有调用 i3c ,那是因为前面一个调用的返回值是falsey,即它的类型转换为false,所以它可能是0,''(空string),undefined,NaN,null,...我可能已经离开了一个。
正如帕特里克所评论的那样:
c.setAttribute("class","b");
将在IE中失败。不要将 setAttribute 用于标准属性,而是使用DOM属性:
c.href = d[2].value;
c.name = "a1";
c.className = "b";
更快,更少忙。
答案 1 :(得分:0)
function i3() {
var e = 'f3e';
if ( !(c0(a,'Please enter both a tile and a url',e)) ) { return flase; }
if ( !(c4(a[2],'Please enter a valid url',b)) ) { return flase; }
(function() {
var doc = document,
a = doc.forms.f3.elements,
b = doc.getElementById('Bb1c'),
c = doc.createElement('a'),
d = doc.forms.f3.elements;
c.href = d[2].value;
c.name = "a1";
c.className = "b";
c.innerHTML = d[1].value;
b.appendChild(c);
// which a you need here ???
//var a = is('f3');
var someOtherA = is('f3');
//------------------------
s0('pi3a.php', a, s2);
// if these are part of the form you use in this function
// use
// document.forms[<name>].elements[<name>].value
doc.getElementById('f3aa').value = '';
doc.getElementById('f3bb').value = '';
})();
}
这可能有用,我想c0和c4返回true / false。这样他们更容易阅读。如果他们返回true,继续下一个并且不返回。
在i3c功能中,您声明 a 两次!
查看评论以获取更多详细信息。