2015-10-12 78 views
0

相同的父我产生了一堆使用jQuery div秒的输入框的另一个孩子的子元素。在每个div内部,还有更多的div包括一个链接。当用户点击一个元素时,我想要一个警告框来显示同一主div内另一个div的html。见下面的代码。如何获得与jQuery/JS

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股利出来做一些事情这...

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中的a元素时,我想要一个警告框来显示与具有编号为dMast的a元素相同的div内的对应div。在上面的例子中,使用.html(),当我点击一个元素,警报框只是显示undefined,即使dMast div中的HTML是。

我试图取代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?

+0

'.closest( “skuDisplay”)','。儿童( “DMAST”)'无处不在,失去了一些东西?当通过id选择元素时,您不需要遍历DOM,只要提供的id在页面上是唯一的,并且它应该。 – Tushar

+0

同为'.closest( “skuDisplay”)'和'.parent( “skuDisplay”)' – j08691

回答

1

$(“#skuDisplay #dMast”)。html的 换句话说,先放,然后家长把孩子的父母可以写成一个.class或#ID

+0

我不清楚,你所提出的建议,我把我的答案。触发我正在运行的函数的标签没有表单。你能澄清吗? – aCarella

+0

我续测试,但尝试(“#skuDisplay格”)我想你可能有forgoton SKU显示(“#skuDisplay #dmast”),或者你在做什么之前,也可能与ID# –

+0

大抓工作的ID。这是一个笨拙的监督。谢谢。现在完全按照预期工作。 – aCarella

0

你失踪skudisplay的#ID和DMAST