Jquery如何检索/替换<span>值中的值?</span>

时间:2014-04-03 14:33:07

标签: javascript jquery html

有多个TR TD,在用于格式化而没有给出ID的表中给出相同的类名。

我想寻求jQuery的帮助。如何在span id = payment_currency_text,class =&#34; formdata元素中检索/替换<td>内容?

1)要设置变量,请存储为SGD,从第二组TR TD获得 2)将SGD替换为EUR

注意:系统使用Jquery version = v1.4.2

我使用下面的语法,但没有运气:

alert(jQuery("#payment_currency_text tr.find(.formdata)").val());
alert(jQuery("#payment_currency_text").next('.formdata').val());
alert(jQuery("#payment_currency_text tr td.formdata").val());
alert(jQuery("#payment_currency_text").find(".formdata").html());

...(tr td child)

<tr>

  <td class="prompt" align="left">     
    Region* 
  </td>

  <td class="formdata" align="left">
     Asian 
  </td>
</tr>

<span id ="payment_currency_text"> <!--- There is a SPAN tag, with ID given  --->
<tr>
  <td class="prompt" align="left">     
     Payment currency* 
  </td>

  <td class="formdata" align="left">
     SGD   <!--- How i can set a variable to hold SGD, then replace to EUR?  --->
  </td>
</tr>
</span>

6 个答案:

答案 0 :(得分:1)

定位td.formdata内的span。试试这个:

获取:

 var currency=$('#payment_currency_text .formdata').html();//currency will be SGD here

设置:

 $('#payment_currency_text .formdata').html('EUR');

答案 1 :(得分:1)

如果您知道它始终是特定的孩子,您可以使用:nth-​​child()选择器。

var setter = $("tr:nth-child(2) td:nth-child(2)").text();

$("tr:nth-child(2) td:nth-child(2)").text("EUR");

alert(setter)

这是一个小提琴http://jsfiddle.net/87V9v/

答案 2 :(得分:0)

如果您只想更改td中的html,请像这样使用

$(".formdata").html("some text or tags here");

如果你想在那些td中获取文本,请像这样使用

$(".formdata").each(function(){
  $(this).html();
 });

修改

$("#payment_currency_text").find(".formdata").html()

$("#payment_currency_text").find(".formdata").html("some text or tags here");

您的html结构存在一些问题,您无法将tr括在内部。 tr应该是table的孩子。因此,相应地更改您的HTML。

 <table>
    <tr>

        <td class="prompt" align="left">
            Region*
        </td>

        <td class="formdata" align="left">
            Asian
        </td>
    </tr>


    <tr id="payment_currency_text">
        <td class="prompt" align="left">
            Payment currency*
        </td>

        <td class="formdata" align="left">
            SGD
            <!--- How i can set a variable to hold SGD, then replace to EUR?  --->
        </td>
    </tr>

</table>

然后您可以使用上面的代码来获取元素和值。

答案 3 :(得分:0)

在jQuery中,你可以替换像这样的元素的内部HTML

$('.class-name').html("Some html in here");

但是,请注意,因为这将替换此名称的所有类的HTML。

答案 4 :(得分:0)

您可以使用text()获取数据(纯文本)以及用新数据替换现有数据。如果您的替代品是HTML,则可以使用html()

var data=$('td.formdata').text();
alert("The value is"+data);
$('td.formdata').text("New Data");

答案 5 :(得分:0)

您可以使用:

$("#payment_currency_text").text("your text");

$("#payment_currency_text").html("your<b>text</b>");