jquery令人困惑的代码

Jas*_*son 2 javascript jquery shopping cart

我正在从Web示例中学习Jquery和Javascript.我有一个很好的工作知识,但一些代码仍然让我兴奋.以下代码用于购物车隐藏结帐按钮并替换为显示有关最小购物车要求的消息的div.有一部分代码让我失望.

function getCollectionCount() {
  var totalCollectionCount = 0;    
  var collection = $('td[alt*="Collection"]');
  for (var i = 0; i < collection.length; i++) {
    var curVal = $(collection[i]).find("select").val();
    if (curVal != undefined){
      totalCollectionCount += parseInt(curVal);
    }
  }
Run Code Online (Sandbox Code Playgroud)

这部分是什么意思?

var collection = $('td[alt*="Collection"]');
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 7

td[alt*="Collection"]选择<td>alt属性包含的所有元素Collection,例如:

<td alt="Collection"></td>
<td alt="CollectionFoo"></td>
<td alt="BarCollection12324343"></td>
Run Code Online (Sandbox Code Playgroud)

但不是

<td></td>
<td alt=""></td>
<td alt="Foo"></td>
Run Code Online (Sandbox Code Playgroud)

旁注:这是一个非常基本的问题,可以通过阅读jQuery选择器API文档轻松解答:

在你问之前请先尝试研究!

  • 我会注意到,在风格上,使用"alt"属性值作为驱动JavaScript逻辑的东西有点不稳定或"代码有点".另外,你确定"*="表示"以...开头"而不仅仅是"包含"吗?就个人而言,我永远记不起那样的东西. (2认同)