如何使用 jQuery/JS 获取相同 parent 的另一个 child 的 child 元素
How to get child element of another child of the same parent with jQuery/JS
我有一个输入框,它使用 jQuery 生成一堆 div
。在每个 div 中,还有更多的 div,包括一个 link。当用户单击该元素时,我想要一个警告框来显示同一主 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
...
...其中每一行都是 parent div (skuDisplay
),并且行中的每个 "column" 或值都是它自己的 div里面的parentdiv.
在这个例子中,每次有人点击每个 div 中的 a 元素时,我想要一个警告框在与 a 相同的 div 中显示相应的 div ID 为 dMast
的元素。在上面的示例中,使用 .html()
,当我单击 a 元素时,警告框只显示 undefined
,即使 dMast
[=64] 中的 html =] 是 2,680.
我尝试用以下内容替换 html()
或该行中的内容,但没有成功:
-var par = $( "#" + getId ).closest("skuDisplay").children("dMast").val();
-var par = $( "#" + getId ).parent("skuDisplay").children("dMast").text();
-var par = $( "#" + getId ).parent().children("dMast").html();
如何在与单击的 a 元素相同的 parent 中获取 div 的 html?
$( "#skuDisplay #dMast" ).html
换句话说,先放 parent 然后放 child parent 可以写成 .class 或 #id
您缺少 skudisplay 和 dmast 的#id
我有一个输入框,它使用 jQuery 生成一堆 div
。在每个 div 中,还有更多的 div,包括一个 link。当用户单击该元素时,我想要一个警告框来显示同一主 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
...
...其中每一行都是 parent div (skuDisplay
),并且行中的每个 "column" 或值都是它自己的 div里面的parentdiv.
在这个例子中,每次有人点击每个 div 中的 a 元素时,我想要一个警告框在与 a 相同的 div 中显示相应的 div ID 为 dMast
的元素。在上面的示例中,使用 .html()
,当我单击 a 元素时,警告框只显示 undefined
,即使 dMast
[=64] 中的 html =] 是 2,680.
我尝试用以下内容替换 html()
或该行中的内容,但没有成功:
-var par = $( "#" + getId ).closest("skuDisplay").children("dMast").val();
-var par = $( "#" + getId ).parent("skuDisplay").children("dMast").text();
-var par = $( "#" + getId ).parent().children("dMast").html();
如何在与单击的 a 元素相同的 parent 中获取 div 的 html?
$( "#skuDisplay #dMast" ).html 换句话说,先放 parent 然后放 child parent 可以写成 .class 或 #id
您缺少 skudisplay 和 dmast 的#id