0

我想使用 jQuery 获取 < p > 标记中的内容。所以我可以为每个玩家的名字创建一个 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);
}
4

4 回答 4

6

这是因为.在ID。 #m1.p1被解释为ID=m1 AND class=p1。您需要转义.(用 2 \s )。

var elementID = "#"+match+"\\.p1 "+"p";

或者使用[id=""]选择器

var elementID = "[id='"+match+".p1'] "+"p";
于 2012-04-16T20:26:49.380 回答
2

你为什么不像这样抓住它们:

$('p.name').each(function() {
    console.log($(this).text());
});​
于 2012-04-16T20:25:54.370 回答
2

您可以尝试使用html()而不是,text()但我感觉问题出.在 ID 中。我不确定这是否是 ID 的有效字符。

于 2012-04-16T20:26:06.320 回答
2

要使用类“名称”获取每个元素的值,您只需遍历它们:

$('.name').each(function(){
    var thisPlayer = this.text();
    console.log(thisPlayer);
});
于 2012-04-16T20:26:43.743 回答