用jquery替换元素

用jquery替换元素,jquery,json,Jquery,Json,我有以下jquery标记: <p class="article"> <font size='5'><b><span class='articleHeading'>Article1</span></b></font><br/> <span class='myArticle'>11111111111111111</span> </p> <p

我有以下jquery标记:

<p class="article">
    <font size='5'><b><span class='articleHeading'>Article1</span></b></font><br/>
    <span class='myArticle'>11111111111111111</span>    
</p>
<p class="article">
    <font size='5'><b><span class='articleHeading'>Article2</span></b></font><br/>
    <span class='myArticle'>22222222222222222222</span>                      
</p>
<p class="article">
    <font size='5'><b><span class='articleHeading'>Article3</span></b></font><br/>
    <span class='myArticle'>333333333333</span>                                   
</p>
但当我使用这个:

$('.articleHeading').text("1111111111");
11111确实被替换了..哈哈。为什么?是否因为存在按值的浅拷贝?而不是通过引用

我找到了解决办法。我必须用$()包装数组中的每一项:

var-articleordings=$('.articleordings');
var articles=$('.myArticle');
var z=0;

对于(var i=0;i有几种方法可以实现这一点,最简单的方法可能是在需要文章的地方创建一个div,清除它,然后根据输入的数据进行填充,这样您就可以通过ajax动态执行此操作,并每隔几秒钟或任何时候刷新一次

例如,您可以这样做:

$("#divID").empty();
for (var i=0;i<data.length;i++) {
    var attrName, value;
    for(var key in data[i]){
        attrName = key;
        value = data[i][key];  
    }
    $("#divID").append(
        $("<p />").addClass("article").append(
            $("<span />").addClass("articleHeading").text(attrName),
            $("<span />").addClass("myArticle").text(value)
        )
    )
}

有几种方法可以做到这一点,最简单的方法可能是在需要文章的地方创建一个div,清除它,然后根据输入的数据进行填充,这样就可以通过ajax动态地完成这一操作,并每隔几秒钟或任何时候刷新它

例如,您可以这样做:

$("#divID").empty();
for (var i=0;i<data.length;i++) {
    var attrName, value;
    for(var key in data[i]){
        attrName = key;
        value = data[i][key];  
    }
    $("#divID").append(
        $("<p />").addClass("article").append(
            $("<span />").addClass("articleHeading").text(attrName),
            $("<span />").addClass("myArticle").text(value)
        )
    )
}

假设您的JSON看起来像这样:

$data = {
    "data": [{
        "articleHeading": "First heading",
        "myArticle": "First article body"},
    {
        "articleHeading": "Second heading",
        "myArticle": "Second article body"},
    {
        "articleHeading": "Third heading",
        "myArticle": "Third article body"}]
};
$(function(){
    $.each($data.data, function(i, data){
        var $article = $('.article').eq(i);
        $article.find('.articleHeading').html(data.articleHeading);
        $article.find('.myArticle').html(data.myArticle); 
    ​});
});
您的jQuery将如下所示:

$data = {
    "data": [{
        "articleHeading": "First heading",
        "myArticle": "First article body"},
    {
        "articleHeading": "Second heading",
        "myArticle": "Second article body"},
    {
        "articleHeading": "Third heading",
        "myArticle": "Third article body"}]
};
$(function(){
    $.each($data.data, function(i, data){
        var $article = $('.article').eq(i);
        $article.find('.articleHeading').html(data.articleHeading);
        $article.find('.myArticle').html(data.myArticle); 
    ​});
});

演示:

假设您的JSON看起来像这样:

$data = {
    "data": [{
        "articleHeading": "First heading",
        "myArticle": "First article body"},
    {
        "articleHeading": "Second heading",
        "myArticle": "Second article body"},
    {
        "articleHeading": "Third heading",
        "myArticle": "Third article body"}]
};
$(function(){
    $.each($data.data, function(i, data){
        var $article = $('.article').eq(i);
        $article.find('.articleHeading').html(data.articleHeading);
        $article.find('.myArticle').html(data.myArticle); 
    ​});
});
您的jQuery将如下所示:

$data = {
    "data": [{
        "articleHeading": "First heading",
        "myArticle": "First article body"},
    {
        "articleHeading": "Second heading",
        "myArticle": "Second article body"},
    {
        "articleHeading": "Third heading",
        "myArticle": "Third article body"}]
};
$(function(){
    $.each($data.data, function(i, data){
        var $article = $('.article').eq(i);
        $article.find('.articleHeading').html(data.articleHeading);
        $article.find('.myArticle').html(data.myArticle); 
    ​});
});

演示:

我有以下jquery标记
这些都不是jquery。html是预创建的,p的长度与数据的长度相同,还是您更愿意在数据中找到文章时动态生成html?因为我可以告诉您如何做这些我更新了我的答案。我想用新内容交换跨度中的任何内容。我没有看到n一个
标签大概10年了。哈哈……我当时很匆忙,我不在乎。你能帮我一下吗..我正在关闭解决方案..为什么我不能将页面上的元素存储到一个数组中,然后替换每个元素文本?
我有以下jquery标记
这些都不是jquery。html是预创建的,p的长度与数据相同吗你宁愿在数据中找到文章时动态生成HTML?因为我可以告诉你如何做我更新了答案..我想用新内容交换跨距中的任何内容..我已经有10年没有看到
标记了.哈哈..我很匆忙,我不在乎.你能帮我一下吗..我接近解决方案了..为什么我不能在将页面放入数组中,然后替换每个元素文本?如果您还需要更多解释,我将在午餐回来时对此进行分解。如果我这样做,将造成严重破坏。我尝试过以这种方式插入值。它不起作用。元素到处都是。我遇到的问题,如上所述。我将在获得ba后对此进行分解如果您仍然需要更多解释,请从午餐中退出。如果我这样做,将造成严重破坏。我尝试以这种方式插入值。它不起作用。到处都是元素。我遇到的问题如上所述。我找到了一个更优雅的解决方案。我所要做的就是包装$(itemelment[0])…当我的数组中的一个项被包装时..它就工作了..看看上面的解决方案。你的解决方案是一个很好的解决方案非常好,更圆滑,正如我提到的,有几种方法我找到了一个更优雅的解决方案..我所要做的就是包装$(itemelment[0])…当我的数组中的一个项目被包装时..它就工作了..看看上面的解决方案.你的解决方案是一个很好的解决方案非常好,更圆滑,正如我提到的有几种方法