我想摆脱“未定义”并平均输出到控制台的priceList数组值。我使用https://experts.shopify.com/designers网页在Chrome控制台中应用此代码。谢谢你的帮助!
//selects the all of the designer cards
var experts = document.querySelectorAll('.expert-card__content');
//This tells us how many designer cards there are
var expertsQty = experts.length;
var expertContent =document.getElementsByClassName("expert-list-summary txt--minor");
//expertContent[0].innerText
var i;
var priceMedian;
var prices;
var priceList = 0;
for(i=0; i<experts.length; i++){
//Grabs the content
var str = expertContent[i].innerText;
//This determines the position of the last $ in the text
var strPosition = expertContent[i].innerText.lastIndexOf("$");
//This goes to the position of the $ and shows the 1 word after it.
var expertPrice= str.substring(strPosition + 1);
//iterate through expert content
parseInt(expertPrice);
parseInt(prices);
priceList = prices += expertPrice;
}
答案 0 :(得分:0)
我在您提供的链接中查看了该网站。这是计算平均值的方法:
// get the second <p>s of inside the <div>s with the classes expert-list-summary and txt--minor
var experts = document.querySelectorAll(".expert-list-summary.txt--minor p:nth-child(2)");
var qty = experts.length; // the quantity is the cound of those p elements
var prices = 0; // prices must be initialized to 0 (otherwise you get an average of NaN)
for(var i = 0; i < experts.length; i++) {
var str = experts[i].textContent; // get the text content of that p element
str = str.replace(/,/g, ''); // remove commas as they're not valid in numbers
var price = parseInt(str.match(/\$(\d+)/)[1]); // use a rgular expression to retrieve the number it's clearer (match any number after the dollar sign, read more about regular expressions)
prices += price; // add this price to the prices (accumulate the prices)
}
var average = prices / qty; // the average is the sum of prices divided by the quantity