jQuery - 如果父div包含特定单词

时间:2015-06-16 08:28:02

标签: javascript jquery html css

我尝试做的是更改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件。

我不知道如何扩展代码来执行此特定任务。

提前感谢您的时间和反馈!

3 个答案:

答案 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>');
    }
});

这是演示:http://jsfiddle.net/p02wvtvs/1/

答案 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 piece2 pieces等字符串,并返回要附加的新HTML。试试这个:

$('.days').append(function(i, html) {
    var matches = /(\d pieces?)/gi.exec(html);
    return '<div class="daysAddiontalInfo">Explaination of stock ' + matches[0] + ' </div>';
});

Example fiddle