我有这个块:
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
我想在append
语句中添加三元组,以便它只是label
或label with an address
item.address != '' ? item.address : ''
或者有点杂乱,但更具体......
if ( item.address != '' )
"<span class='customer_search_addr'>" + item.address + "</span>"
else
"<a>" + item.label + "</a>"
我可以在这里制作一个可链接的proc,因为我不能(我认为我不能)直接在附加语句中添加这个三元组。
答案 0 :(得分:2)
是的,您可以在append
电话中添加三元组:
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( (item.address != '')?("<span class='customer_search_addr'>" + item.address + "</span>"):("<a>" + item.label + "</a>") )
.appendTo( ul );
然而,它非常混乱,所以我会这样做:
var address = (item.address != '')?
("<span class='customer_search_addr'>" + item.address + "</span>"):
("<a>" + item.label + "</a>");
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append(address)
.appendTo( ul );
答案 1 :(得分:1)
它应该工作..将首先评估参数,因此它只是将结果传递给函数。
证明演示:http://jsfiddle.net/5LpqL/
但我相信如果你先评估下面的话会更好,
var stuffToAppend = (item.address)?"<a>" + item.label + "</a>":"<span class='customer_search_addr'>" + item.address + "</span>";
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( stuffToAppend )
.appendTo( ul );
更好的是拥有if..else
条件..