javascript函数if,else条件
我是编程新手,我从零开始创建了以下Javascript函数。但是,它执行不正确。它有一些错误,但是,我无法清除错误。请帮助我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")
<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;
}