我正在通过网络示例学习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);
}
}
这部分是什么意思?
var collection = $('td[alt*="Collection"]');
答案 0 :(得分:7)
td[alt*="Collection"]
选择<td>
属性包含alt
的所有Collection
个元素,例如:
<td alt="Collection"></td>
<td alt="CollectionFoo"></td>
<td alt="BarCollection12324343"></td>
但不是
<td></td>
<td alt=""></td>
<td alt="Foo"></td>
旁注:这是一个非常基本的问题,可以通过阅读jQuery selectors API documentation轻松回答:
在你问之前请先尝试研究!
答案 1 :(得分:1)
这是一个jQuery属性selector子句。它正在选择任何td
元素,该元素具有名为alt
的atrtibute,其字符串包含值Collection
。
包含选择器:http://api.jquery.com/attribute-contains-selector/
jQuery有许多有用的属性选择器。这是他们的主要参考页面。如果您刚刚开始使用jQuery
,非常值得一读答案 2 :(得分:1)
该代码返回其“alt”属性包含“Collection”的每个td元素。
http://api.jquery.com/attribute-contains-selector/
jQuery充满了这些需要永远学习的时髦快捷方式,所以我总是在我的桌面上随时保留jQuery in action的副本:)
答案 3 :(得分:1)
这段代码可以更简单,更简单地重写:
function getCollectionCount() {
var totalCollectionCount = 0;
$('td[alt*="Collection"] select').each(function() {
var val = this.value || "0";
totalCollectionCount += parseInt(val, 10);
});
return(totalCollectionCount);
}
而且,这是它的工作原理: