小编Bri*_*ian的帖子

强制javascript始终返回数组的简单方法

我偶然发现YQL API要查询在Twitter上使用的WOEID,但我可以看到输出并不总是在数组中.API返回一个对象,我对其值感兴趣response.query.results返回以下内容:

  • 如果没有结果,则返回null
  • 如果只有一个结果,则返回一个对象
  • 如果是多个结果,则返回一个数组

我希望结果始终是一个数组.我可以通过使用以下代码检查结果来解决这个问题:

var count = response.query.count;

if(count === 0) {
    return [];
} else if(count === 1) {
    var arr = [];
    arr.push(response.query.results);
    return arr;
} else {
    return response.query.results;
}
Run Code Online (Sandbox Code Playgroud)

是否有一个javascript或lodash函数可以简化上面的代码?如果提供单个对象,它似乎_.forEach并将_.toArray每个属性视为对象.

javascript arrays

5
推荐指数
1
解决办法
2722
查看次数

ARM模板将字符串数组转换为对象数组

不确定这个功能是否存在。我正在尝试将来自 Azure DevOps 构建参数的逗号分隔 IP 地址列表转换为对象数组。到目前为止,它只是将一个逗号分隔的列表拆分为一个字符串数组,但模板需要一个对象数组。

参数值为逗号分隔的 IP 地址列表。例如“ 192.168.0.1,192.168.0.2/32,127.0.0.1

ARM 模板如下所示:

"variables": {
  "ipaddresses": "[split(parameters('ipaddresses'), ',')]"
},
"resources": [
  ...
    "ipRestrictions": "[stringArrToObjArr(variables('ipaddresses'))]" <--
  ...
]
Run Code Online (Sandbox Code Playgroud)

理想情况下,使用上面的箭头函数会产生 ipRestrictions 的值,如下所示:

[
  {
    "ipAddress": "192.168.0.1"
  },
  {
    "ipAddress": "192.168.0.2/32"
  },
  {
    "ipAddress": "127.0.0.1"
  },
]
Run Code Online (Sandbox Code Playgroud)

azure azure-resource-manager azure-rm-template

5
推荐指数
1
解决办法
1423
查看次数

每次点击触发相同的CSS动画

我正在尝试触发CSS动画onclick,但是每次单击后都要重新启动它。我知道我可以打开和关闭动画,但是我想每次单击按钮时都触发动画。另外,最初CSS动画不应运行。仅在单击时运行。

这是我的笔。 http://codepen.io/omarel/pen/JRwpZp

HTML:

<a href="#" class="addtocart">click me</a>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

 $('.addtocart').click(function () {  
     $(this).addClass('on');
 }); 
Run Code Online (Sandbox Code Playgroud)

CSS:

.addtocart {
    position: relative;
}

    .addtocart.on {
        -webkit-animation: cartbtnFade 0.6s 0.1s 1 linear alternate;
        -moz-animation: cartbtnFade 0.6s 0.1s 1 linear alternate;
        -ms-animation: cartbtnFade 0.6s 0.1s 1 linear alternate;
        -o-animation: cartbtnFade 0.6s 0.1s 1 linear alternate;
        animation: cartbtnFade 0.6s 0.1s 1 linear alternate;
    }

@keyframes cartbtnFade {
    0% {
        opacity: 0;
        transform: translateY(-100%);
    }

    10% {
        transform: translateY(-100%);
    }

    15% {
        transform: translateY(0);
    }

    30% { …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery

4
推荐指数
1
解决办法
4366
查看次数

如何在点击<a>标签时更改CSS链接?

我一直在努力让我的锚标签工作,如果点击它,它会改变href指向颜色主题CSS的链接.

这是我到目前为止所得到的.我只是试图将其改为红色主题.

html(列表标记之间删除了空格以防止视觉效果造成的间隙inline-block)

<header>
  <ul>
   <li>
    <a id="theme_selector_red" href="" onclick="applyCSS('css/theme_red.css');"></a>
   </li>
   <li>
    <a id="theme_selector_green" href=""></a>
   </li>
   <li>
    <a id="theme_selector_blue" href=""></a>
   </li>
  </ul>
 </header>
Run Code Online (Sandbox Code Playgroud)

链接标记

<link id="color_theme" type="text/css" rel="stylesheet" href="css/theme_blue.css">
Run Code Online (Sandbox Code Playgroud)

javascript 我以不同的方式尝试了.attr(),也尝试删除和重置属性,没有运气.警报只是测试点击是否到达该功能,是的,每次点击链接时网站都会显示警报.

function applyCSS(css_link){
   $('#color_theme').attr("href", css_link);
   document.getElementById('color_theme').removeAttribute('href');
   document.getElementById('color_theme').setAttribute('href', css_link);
   alert('hey');
};
Run Code Online (Sandbox Code Playgroud)

链接标签工作,href当我点击链接时,它不会改变它.:(

html javascript css anchor jquery

3
推荐指数
1
解决办法
2633
查看次数