Javascript三元运算符
Javascript ternary operator
我正在为谷歌地图创建两个不同的图标。然而,只有一个图标出现。一个名为facility的下拉选择将允许一个基于值'8'的图标,所有其他值创建另一个图标。
var marker = createMarker(latlng, name, address, city, state, zipcode, telephone, images, url, facility);
function createMarker(latlng, name, address, city, state, zipcode, telephone, images, url, facility) {
var html = "<div id='infodiv'>" + name + "<br/><h4>" + address + "<br/>" + city + ", " + state + " " + zipcode + "<br/>" + (formatPhone(telephone)) + "</h4><div class='infoimage'><img src='" + images + "'></div><div class='footer'><a href='http://" + url + "'>" + url + "</a></div></div>";
var marker = new google.maps.Marker({
icon: icon2,
icon: (facility == 8) ? icon : icon,
map: map,
position: latlng
});
图标如下:
var icon = new google.maps.MarkerImage("./images/plum_flag.png",
new google.maps.Size(35, 52), new google.maps.Point(0, 0),
new google.maps.Point(0, 52));
//callup the orange icon
var icon2 = new google.maps.MarkerImage("./images/orange_flag.png",
new google.maps.Size(26, 39), new google.maps.Point(0, 0),
new google.maps.Point(0, 39));
唯一显示的图标是'var icon = new google.maps.MarkerImage("./images/plum_flag.png",'无论选择选项是什么....
(facility == 8) ? icon : icon,
表示:如果facility
为8
,则使用icon
,否则使用icon
。不是很有用,因为总是使用icon
。
你可以这样写:
(facility == 8) ? icon : icon2,
您可能会感到困惑,因为icon
指的是前面设置的icon: icon2
。然而,两个icon
都指向完全相同的东西,因此您不会看到任何差异。
由于您使用三元操作符定义icon
,因此第一个icon:
定义也可以省略(第二个icon:
定义无论如何都会覆盖它)。
这是错误的:
icon: icon2,
icon: (facility == 8) ? icon : icon,
你给icon赋了两次值,第二次都是一样的
相关文章:
- 三元运算符检查多个字符串
- 用javascript中的三元运算符连接字符串
- 使用AngularJs数据绑定的三元运算符显示图像
- 三元运算符是NaN
- AngularJS模板中的三元运算符
- Javascript 同构三元运算符无法正确解析
- 车把中有三元运算符吗.js
- 三元运算符未执行的虚假语句
- 根据三元运算符选择函数
- 用三元运算符整理javascript
- 堆叠三元运算符在 Angularjs 表达式中不起作用
- es6javascript推荐使用三元运算符应用模板文本的方法
- 具有逻辑运算符的复杂三元运算符
- 通过三元运算符的自赋值
- 三元运算符中的表达式作为函数
- JavaScript中看似多余的三元运算符
- js:三元运算符中的多重返回
- Javascript 三元运算符结果
- 使用三元运算符缩短代码
- 语句中的三元运算符