我尝试做的是更改div中的特定单词,如果父div包含特定单词,我会添加该单词;
<p class="days">Stock, 1 piece remaining.</p>
我必须添加一个额外的解决方法,使用prepend函数添加另一个div以获取更多信息:
$(".days").append('<div class="daysAddiontalInfo">Explaination of stock 1 piece</div>');
我喜欢以下内容;如果我的父div(.days)包含数字1 - 我需要它显示1件,但如果它包含数字2,3,4或5我需要它显示2,3,4或5件。
我不知道如何扩展代码来执行此特定任务。
提前感谢您的时间和反馈!
答案 0 :(得分:0)
以下是一个示例解决方案:
var $days = $(".days");
var pieces = $days.text().match(/\d/);
$days.append('<div class="daysAddiontalInfo">Explaination of stock '+pieces+' piece</div>');
一个有效的代码:http://jsfiddle.net/367vvq1a/
此外,考虑到复数形式 - 并考虑拥有多个.days
元素 - 您可以这样做:
$(".days").each(function () {
var piecesMatch = $(this).text().match(/\d+/);
if (piecesMatch) {
var piecesCount = parseInt(piecesMatch[0]);
var piecesText = piecesCount + ((piecesCount > 1) ? ' pieces' : ' piece');
$(this).append('<div class="daysAddiontalInfo">Explaination of stock '+piecesText+'</div>');
}
});
答案 1 :(得分:0)
如果您确定它是一个数字,那么您可以使用
var number = parseInt($(".days").text());
$(".days").append('<div class="daysAddiontalInfo">Explaination of stock "+ number +" piece</div>');
否则,您可以在span
中添加特定字词并获取其值
<p class="days">Stock, <span>1</span> piece remaining.</p>
并在javascript中
var word = $(".days span').text();
$(".days").append('<div class="daysAddiontalInfo">Explaination of stock "+ word +" piece</div>');
答案 2 :(得分:0)
您可以为append()
方法提供一个函数,该方法将分别检查每个.days
元素的HTML。从那里,您可以使用正则表达式匹配1 piece
,2 pieces
等字符串,并返回要附加的新HTML。试试这个:
$('.days').append(function(i, html) {
var matches = /(\d pieces?)/gi.exec(html);
return '<div class="daysAddiontalInfo">Explaination of stock ' + matches[0] + ' </div>';
});