Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加一个<;hr/>;元素到类中的每个元素,获取[Object Object]或纯文本,而不是hr元素_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 添加一个<;hr/>;元素到类中的每个元素,获取[Object Object]或纯文本,而不是hr元素

Javascript 添加一个<;hr/>;元素到类中的每个元素,获取[Object Object]或纯文本,而不是hr元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,在对进行排序后,我试图添加一个与.pressRow类对应的水平条。这是我的JavaScript函数: function SortPressRecent() { var $pressRows = $(".pressRow"); var OrderedDivs = $pressRows.sort(function (a, b) { var da = new Date($(a).data("date")); var db = new Date($(b).

在对
进行排序后,我试图添加一个与
.pressRow
类对应的水平条。这是我的JavaScript函数:

function SortPressRecent() {
    var $pressRows = $(".pressRow");
    var OrderedDivs = $pressRows.sort(function (a, b) {
        var da = new Date($(a).data("date"));
        var db = new Date($(b).data("date"));
        return da > db ? -1 : da < db;
    });
    $.each(OrderedDivs, function () {
        $(this)[0].append($('<hr />'));
    });
    $("#PressRows").html(OrderedDivs);
}
    function SortPressRecent() {
        var $pressRows = $(".pressRow");
        var OrderedDivs = $pressRows.sort(function (a, b) {
            var da = new Date($(a).data("date"));
            var db = new Date($(b).data("date"));
            return da > db ? -1 : da < db;
        });

        $("#PressRows").html(OrderedDivs);
        $(".pressRow").after('<hr/>');
    }
如果我附加
$('
')
,它将显示为
[Object Object]
。如果我将其添加为
'hr'
,它将显示为文本,而不是我想要的行

编辑:你们的答案都是正确的。我意识到我有一个不同的问题,我需要在每个
按row
的关闭
元素后添加它,而不是在内部。我最终没有使用
$。每个
功能:

function SortPressRecent() {
    var $pressRows = $(".pressRow");
    var OrderedDivs = $pressRows.sort(function (a, b) {
        var da = new Date($(a).data("date"));
        var db = new Date($(b).data("date"));
        return da > db ? -1 : da < db;
    });
    $.each(OrderedDivs, function () {
        $(this)[0].append($('<hr />'));
    });
    $("#PressRows").html(OrderedDivs);
}
    function SortPressRecent() {
        var $pressRows = $(".pressRow");
        var OrderedDivs = $pressRows.sort(function (a, b) {
            var da = new Date($(a).data("date"));
            var db = new Date($(b).data("date"));
            return da > db ? -1 : da < db;
        });

        $("#PressRows").html(OrderedDivs);
        $(".pressRow").after('<hr/>');
    }
函数SortPressRecent(){
变量$pressRows=$(“.pressRow”);
var OrderedDivs=$pressRows.sort(函数(a,b){
var da=新日期($(a).数据(“日期”);
var db=新日期($(b).数据(“日期”);
返回da>db?-1:da”);
}

你把普通的JS和jQuery搞混了

您的代码是:

$(this)[0].append($('<hr />'));
$(this)[0]。追加($(“
”);
应该是哪一个

$(this).append($('<hr />'));
$(this.append($(“
”);
方法是jQuery方法,需要像
$(this)
这样的jQuery对象。当您尝试使用
$(this)[0]
访问第一项时,返回的是一个JavaScript对象,而不是jQuery对象,因此它没有
append()
方法

您还可以将HTML字符串传递给
append()
方法,这样您就可以简单地传递它

,而无需将其设置为jQuery对象
$(“
”)

更改此行:

$(this)[0].append($('<hr />'));

那是因为你用错了
$(this)[0]
返回DOM节点(
$(this)[0]==this
),但实际上您不想使用jQuery对象。使用:
$(this).append(“
”)
也没有必要将
'
作为jQuery对象<代码>附加(“
”)
将完成此任务。性能差异可以忽略不计,但这样做仍然没有意义。
$(this)[0].append($('<hr />')[0]);