2013-03-12 80 views
2

如何从我的位置选择class =“date”和id =“z”的标签?如何选择jQuery中的下一个标签?

<td style="width:300px;height:40px;" id="pricePanel"> 
    <div id="class"> 
     <label class="priceNumber" id="label">test</label> 
     <div class="no" hidden="hidden"> 
      <input type="text" id='priceNumber' class="text" style="text-align:center;" onkeypress="if(event.keyCode==13)" value='@item.Cost.ToString()' /> 
     </div> 
    <div> 
</td> 
<td id="x"> 
    <label class="date" id="z">@date</label> 
</td> 

我的位置是在这里文本块在我的jQuery代码:

$(".text").live("keypress", function (event) { 
     //Here I want to change the text of the label with class="date" and id="z" 
    }); 

注:在主代码中,我有一个循环,不幸的是有一些标签具有相同class和id正因为如此,我想在改变文本的文本框之后选择标签。

+0

在主代码中,我有一个循环,不幸的是,有一些标签具有相同的类和标识,因此我希望在更改文本的文本框之后选择标签。 – 2013-03-12 05:23:29

回答

4

使用$(this)参考,以获得当前位置.. parents('td')移动到<td> .. next()获得下一个<td>find,以获取标签 试试这个

$("div.no").on("keypress",".text", function (event) { 
    $(this).parents('td').next().find('#z').text(); 
}); 

无论其,因为你有ID在标签中...直接使用它作为选择器是更好的性能明智和更快..

$(".text").on("keypress", function (event) { 
    $('#z').text(); // $('label.date').text(); 
}); 
2

您可以使用closest()达到文本的父td然后使用next()到达下一个TD和find()标签与给定的类。你可能有重复的结构,并使用相同的id与多个一个元素是禁止的,所以使用class与标签。如果您没有 重复结构,请立即使用ID。

Live Demo

你是不是在第一个TD关闭第一个div也。

的Html

<table> 
    <tr> 
     <td style="width:300px;height:40px;" id="pricePanel"> 
      <div id="class"> 
       <label class="priceNumber" id="label">test</label> 
       <div class="no"> 
        <input type="text" id='priceNumber' class="text" style="text-align:center;" 
        onkeypress="if(event.keyCode==13)" value='@item.Cost.ToString()' /> 
       </div> 
      </div> 
     </td> 
     <td id="x"> 
      <label class="date" id="z">@date</label> 
     </td> 
    </tr> 
</table> 

的Javascript

$(".text").live("keypress", function (event) { 
    $(this).closest('td').next('td').find('.date').text("your text"); 
}); 

如果你没有重复的块,并有单,然后直接使用的ID。

$(".text").live("keypress", function (event) { 
    $('#z').text("your text"); 
}); 

Live不赞成使用on如果可能的话。

+0

你的回答是真实的,但如果我可以打2个答案的coorect答案的标志。谢谢很多;) – 2013-03-12 05:35:23

+0

不客气..... – Adil 2013-03-12 05:35:56

1
$(".text").live("keypress", function (event) { 
      $("label#z").text(/*your text*/) 
     }); 
1

使用ID /类是更快的方法来识别和对象

直接使用ID属性(考虑到 “Z” 是一个唯一的ID)

$('#z').text("your text") 

如果z是重复的然后更好地使用类

$('label.date').text("your text")