我正在尝试使用jQuery根据它所在的div类更改段落文本。
我希望数组中的每个类名都替换它们各自div中的p文本。现在我只得到p文本的最后一个div的类名。
<div class="ph player">PHILIPPINES<p class="topic">Test topic</p></div>
<div class="sl player">SOLOMON ISLANDS<p class="topic">Test topic</p></div>
<div class="fi player">FIJI<p class="topic">Test topic</p></div>
<div class="sm player">SAMOA<p class="topic">Test topic</p></div>
<script>
var divArr = ["ph", "sl", "fi", "sm"];
$.each(divArr, function(index, value) {
$(".topic").text(this);
});
</script>
谢谢你的期待。初学者总数。
答案 0 :(得分:3)
我认为你想要的是:
$.each(divArr,function(i,val) {
$('.'+val+' p.topic').text(val);
});
这将使每个div的段落文本等于两个字母的类名
答案 1 :(得分:1)
您必须找到合适的.topic
而不是所有.topic
:
var divArr = ["ph", "sl", "fi", "sm"];
$.each(divArr, function(index, value) {
$('.' + value).find(".topic").text(this);
});
答案 2 :(得分:1)
确保您只选择要更改的div:
var divArr = ["ph", "sl", "fi", "sm"];
$.each(divArr, function(index, value) {
$("div." + value + " .topic").text(value);
});
答案 3 :(得分:0)
$.each(divArr, function (i,e) {
$("."+this).find("p.topic").text(this);
});
关键是要正确使用选择器。
“this
”取值“ph”,“sl”......
所以"."+this
将识别JQuery / CSS语法中的类(.ph,.sl ...)
$("."+this)
会选择正确的div
,我们会在其中使用p
类.topic
标记并替换文字(再次,this
)。