我想获得< p>使用jQuery标记。所以我可以为每个玩家的名字添加一个Java变量。 jquery代码将playerN1设置为空字符串而不是播放器名称。我想知道为什么text()没有抓住玩家的名字(< p>标签中的内容)?
<!-- HTML -->
<div class="match1">
<div id="m1.p1" class="col3 first last bracket_player1">
<p class="name">Player1 Name</p>
</div>
<div id="m1.p2" class="col3 first last bracket_player2">
<p class="name">Player2 Name</p></div>
</div>
</div>
<div class="match2">
<div id="m2.p1" class="col3 first last bracket_player1">
<p class="name">Player1 Name</p>
</div>
<div id="m2.p2" class="col3 first last bracket_player2">
<p class="name">Player2 Name</p></div>
</div>
</div>
// The jQuery
for (i = 0; i < 7; i++)
{
var match = "m" + i;
var elementID = "#"+match+".p1 "+"p";
var playerN1 = $(elementID).text();
console.log(elementID);
console.log(playerN1);
}
答案 0 :(得分:6)
这是因为ID中的.
。 #m1.p1
被解释为ID=m1 AND class=p1
。您需要转义.
(with 2 \
s)。
var elementID = "#"+match+"\\.p1 "+"p";
或使用[id=""]
selector。
var elementID = "[id='"+match+".p1'] "+"p";
答案 1 :(得分:2)
你为什么不这样抓住他们:
$('p.name').each(function() {
console.log($(this).text());
});
答案 2 :(得分:2)
您可以尝试使用html()
代替text()
,但我感觉问题出在ID中的.
。我不确定这是一个有效的ID字符。
答案 3 :(得分:2)
要使用类'name'获取每个元素的值,您只需遍历它们:
$('.name').each(function(){
var thisPlayer = this.text();
console.log(thisPlayer);
});