javascript函数if,else条件

javascript函数if,else条件,javascript,if-statement,Javascript,If Statement,我是编程新手,我从零开始创建了以下Javascript函数。但是,它执行不正确。它有一些错误,但是,我无法清除错误。请帮助我 <script type = "text/javascript"> function GetSelectedRow(lnk) { var row = lnk.parentNode.parentNode; if (row.cells[0].innerHTML == "checkbox")

我是编程新手,我从零开始创建了以下Javascript函数。但是,它执行不正确。它有一些错误,但是,我无法清除错误。请帮助我

<script type = "text/javascript">
        function GetSelectedRow(lnk) {
            var row = lnk.parentNode.parentNode;
            if (row.cells[0].innerHTML == "checkbox")
            {
                var ItemCode = row.cells[1].innerHTML;
                var ItemName = row.cells[2].innerHTML;
                var Unit = row.cells[3].innerHTML;
                var Price = row.cells[4].innerHTML;
                var StockQty = row.cells[5].innerHTML;
                document.getElementById('<%=TxtICode.ClientID %>').value = ItemCode;
                document.getElementById('<%=TxtIName.ClientID %>').value = ItemName;
                document.getElementById('<%=DropDownUnit.ClientID %>').value = Unit;
                document.getElementById('<%=TxtPrice.ClientID %>').value = Price;
                document.getElementById('<%=TxtStockQty.ClientID %>').value = StockQty;
                return false;

            }
           else (row.cells[0].innerHTML != checkbox)
            {
                 var ItemCode = row.cells[0].innerHTML;
                var ItemName = row.cells[1].innerHTML;
                var Unit = row.cells[2].innerHTML;
                var Price = row.cells[3].innerHTML;
                var StockQty = row.cells[4].innerHTML;
                document.getElementById('<%=TxtICode.ClientID %>').value = ItemCode;
                document.getElementById('<%=TxtIName.ClientID %>').value = ItemName;
                document.getElementById('<%=DropDownUnit.ClientID %>').value = Unit;
                document.getElementById('<%=TxtPrice.ClientID %>').value = Price;
                document.getElementById('<%=TxtStockQty.ClientID %>').value = StockQty;
                return false;
            }

        }
    </script>

函数GetSelectedRow(lnk){
var row=lnk.parentNode.parentNode;
if(行。单元格[0]。innerHTML==“复选框”)
{
var ItemCode=row.cells[1].innerHTML;
var ItemName=row.cells[2].innerHTML;
var Unit=row.cells[3].innerHTML;
var Price=row.cells[4].innerHTML;
var StockQty=row.cells[5].innerHTML;
document.getElementById(“”).value=ItemCode;
document.getElementById(“”).value=ItemName;
document.getElementById(“”).value=单位;
document.getElementById(“”).value=Price;
document.getElementById(“”)。值=库存数量;
返回false;
}
else(行。单元格[0]。innerHTML!=复选框)
{
var ItemCode=row.cells[0].innerHTML;
var ItemName=row.cells[1].innerHTML;
var Unit=row.cells[2].innerHTML;
var Price=row.cells[3].innerHTML;
var StockQty=row.cells[4].innerHTML;
document.getElementById(“”).value=ItemCode;
document.getElementById(“”).value=ItemName;
document.getElementById(“”).value=单位;
document.getElementById(“”).value=Price;
document.getElementById(“”)。值=库存数量;
返回false;
}
}

如果您实际上想要测试第二个条件,如果第一个条件为假,那么

else(row.cells[0].innerHTML!=复选框)

应该是:

else if(row.cells[0].innerHTML!=复选框)

但是您的
else
条件与您的
if
条件相同(只是您忘记了在
else
中的
复选框周围加引号),因此如果
行.cells[0].innerHTML==“checkbox”
,那么您的代码将永远不会命中
else
分支您很可能根本不想在else中出现任何情况。

另外,如果您的函数沿着这两条路径中的一条路径(true/false)向下移动,并且它们都返回
false
,那么您似乎正在使用该路径退出函数,这是不必要的,因为您的函数在
if
语句之后终止,或者您希望
false
始终是返回值,这没有任何意义

最后,真实分支中大约有一半的代码与虚假分支中的代码相同。不管发生什么情况,代码都需要运行,所以只需在两个分支之外编写一次,让您的
if
分支担心在每种情况下会有什么不同(DRY:“不要重复自己”是任何编程语言中的最佳实践)

函数GetSelectedRow(lnk){
var项目代码、项目名称、单位、价格、库存数量;
var row=lnk.parentNode.parentNode;
if(行。单元格[0]。innerHTML==“复选框”){
ItemCode=行。单元格[1]。innerHTML;
ItemName=row.cells[2].innerHTML;
单位=行。单元格[3]。innerHTML;
Price=row.cells[4].innerHTML;
StockQty=行。单元格[5]。innerHTML;
}否则{
ItemCode=行。单元格[0]。innerHTML;
ItemName=行。单元格[1]。innerHTML;
单位=行。单元格[2]。innerHTML;
Price=row.cells[3].innerHTML;
StockQty=行。单元格[4]。innerHTML;
}
document.getElementById(“”).value=ItemCode;
document.getElementById(“”).value=ItemName;
document.getElementById(“”).value=单位;
document.getElementById(“”).value=Price;
document.getElementById(“”)。值=库存数量;
}

欢迎使用堆栈溢出!请看一下,仔细阅读,尤其是
else
不接受任何条件,它只是
else{…}
,就像前面的值是
false
一样,在上面的条件中,它将执行
else
中的代码<如果(…){…}
接受一个条件,但根据您试图执行的操作,您将不希望使用该条件。
else(row.cells[0].innerHTML!=复选框)
应该是
如果…
它可能应该是
else
,则未定义
复选框。我好像忘了把它变成一个字符串。对不起,我犯了一些错误。在两个GridView中单击“选择”按钮时,如果我想使用相同的Javascript函数,则错误地键入了else而不是else。第一个GridView在第[0]列中有一个复选框字段,第二个GridView没有。@Ram,您的问题是什么?我想从GridView(选择按钮)调用此Javascript函数。并检查第一列中是否有复选框字段,如果条件不满足则执行,否则将执行条件。
function GetSelectedRow(lnk) {

    var ItemCode, ItemName, Unit,Price, StockQty;
    var row = lnk.parentNode.parentNode;

    if (row.cells[0].innerHTML == "checkbox") {
        ItemCode = row.cells[1].innerHTML;
        ItemName = row.cells[2].innerHTML;
        Unit = row.cells[3].innerHTML;
        Price = row.cells[4].innerHTML;
        StockQty = row.cells[5].innerHTML;

    } else {
        ItemCode = row.cells[0].innerHTML;
        ItemName = row.cells[1].innerHTML;
        Unit = row.cells[2].innerHTML;
        Price = row.cells[3].innerHTML;
        StockQty = row.cells[4].innerHTML;
    }

    document.getElementById('<%=TxtICode.ClientID %>').value = ItemCode;
    document.getElementById('<%=TxtIName.ClientID %>').value = ItemName;
    document.getElementById('<%=DropDownUnit.ClientID %>').value = Unit;
    document.getElementById('<%=TxtPrice.ClientID %>').value = Price;
    document.getElementById('<%=TxtStockQty.ClientID %>').value = StockQty;

}