gpt4 book ai didi

javascript - 根据ajax中的另一个td名称设置td值

转载 作者:行者123 更新时间:2023-11-28 14:59:52 26 4
gpt4 key购买 nike

我有以下表结构:

<tr>
<td class="name">
Stock1
</td>
<td class="price">

</td>
</tr>
<tr>
<td class="name">
Stock2
</td>
<td class="price">

</td>
</tr>

根据名称Stock1和Stock2,我需要在下一个td中设置相应的价格。我通过 ajax 抓取价格并尝试按如下方式设置值:

对于库存1:

$(document).ready(function() {
$.ajax({
*everything else working fine*
success: function(data) {
if($('.name').html().indexOf("Stock1") != -1) {
$(this).closest('tr').find('.price').html(data);
}
}
});
});

在这种情况下,this 不起作用,我希望它是类 nametd 标记,其中值为 Stock1 。如果我将 this 替换为 ".name",则该代码仅在有一个 name td 时才有效。当我有两个带有类 nametd 标签时,它不起作用。

我需要在文档加载后立即完成此操作,而不是在鼠标单击或悬停等事件上完成。

最佳答案

this 既不引用 td.name 元素,也不引用 table

:contains() Selector选择包含指定文本的所有元素来定位 td,然后使用 .next() 使用 DOM 关系来定位紧随其后的同级 td >。

$('td.name:contains("Stock1")').next('.price').html(data);

$('td.name:contains("Stock1")').closest('tr').find('.price').html(data);

您还可以使用.filter()

var var1 = 'Stock1';
$('td.name').filter(function(){
return this.textContent.indexOf(var1) != -1;
}).closest('tr').find('.price').html(data);
<小时/>

根据评论,现在您正在返回一个数组。因此需要迭代 data 对象并定位所需的元素。

var data = [{
name: "Stock1",
price: "$12"
}, {
name: "Stock2",
price: "$15"
}]
$.each(data, function(_, d){
$('td.name').filter(function() {
return this.textContent.indexOf(d.name) != -1;
}).closest('tr').find('.price').html(d.price);
})

DEMO

关于javascript - 根据ajax中的另一个td名称设置td值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41459559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com