如何使用jQuery / JS

时间:2015-10-12 14:30:20

标签: javascript jquery html parent-child parent

我有一个使用jQuery生成一堆div的输入框。在每个div中,有更多的div包括一个链接。当用户点击一个元素时,我想要一个警告框来显示同一主div内的另一个div的html。请参阅下面的代码。

HTML

<form rol="form">
    <div class="form-group">
        <label for="s" id="s-label">Please enter the id below</label>
        <input class="form-control text-center" type="input" id="s" onkeyup="getS( $( this ).val() );">
    </div>
</form>

<div class="col-md-12" id="s-results">
</div>

jQuery(这是一个AJAX调用)

function getS(sS) { 
  $.ajax({
    type: 'POST',
    url: 's-query.php',
    mimeType: 'json',
    //dataType: 'application/json',
    data: {sku: sS},
    success: function(data) {
        var disp = "";

        counterp = 0;
        $.each(data, function(i, data) {
            disp += "<div class='col-md-12' id='sDisplay'>";
            disp += "<div class='col-md-2' id='dSku' >" + data[0] + "</div>";
            disp += "<div class='col-md-3' id='dDesc'>" + data[1] + "</div>";
            disp += "<div class='col-md-2' id='dMast'>" + data[2] + "</div>";
            disp += "<div class='col-md-2 text-center'>";
            disp += "<input class='col-md-6 text-center' type='number' value='"+ data[3] + "' id='dChange'>";
            disp += "</div>";
            disp += "<div class='col-md-2 text-center'>" + data[4] + "</div>";
            disp += "<div class='col-md-1 text-center'><a class='inv-click' id='" + counterp + "' onclick='updateD(this.id)'  value='" + counterp + "'><i class='fa fa-check-square-o'></i></a></div>";
            disp += "</div>";

            counterp = counterp + 1;
        });

        //Success function if all goes well.
        $( "#sku-results" ).empty();

        $( "#s-results" ).append( disp );

    },
    error: function() {
        alert('There seems to be an error fetching the data.');
    }
  });
}

function updateD(getId)
{
    var par = $( "#" + getId ).closest("skuDisplay").children("dMast").html();
    alert(par);
}

jQuery的结果填充了s-results div,使其成为了这一点......

12345 | Item 1 | 2,680 | 195 | 123-456 | update (<-this is the a element)
98765 | Item 2 | 2,680 | 45  | 987-653 | update
74185 | Item 3 | 2,680 | 330 | 645-852 | update
...

...其中每一行都是父div(skuDisplay),行中的每个“列”或值都是父div中自己的div。

在这个例子中,每当有人点击每个div中的一个元素时,我想要一个警告框,在同一个div中显示与id为dMast的元素相对应的div。在上面的示例中,使用.html(),当我单击a元素时,警告框只显示undefined,即使dMast div中的html 2,680 < / I>

我试图用以下内容替换html()或该行中的某些内容,但没有运气:

-var par = $( "#" + getId ).closest("skuDisplay").children("dMast").val();

-var par = $( "#" + getId ).parent("skuDisplay").children("dMast").text();

-var par = $( "#" + getId ).parent().children("dMast").html();

我如何获得与单击的元素相同的父级内的div的html?

2 个答案:

答案 0 :(得分:1)

$(“#skuDisplay #dMast”)。html 换句话说,首先把父母然后把孩子的父母可以写成.class或#id

答案 1 :(得分:0)

你错过了skidisplay和dmast的#id