Jquery替换为Javascript函数的返回值

Geo*_*e W 4 javascript jquery replace function

好的,我刚刚开始使用jQuery.

我有一个页面,其中包含日期值表.每个都包含在一个标签中,我可以用$('mytag')找到它. <mytag>2009-10-31</mytag>

如何,使用Jquery,我会

  1. 获取每个源值和
  2. 将它传递给Javascript函数
  3. 然后用函数计算的结果替换表中的源值.

所以 <mytag>2009-10-31</mytag>将被取代<mytag>Very Late</mytag>

我写了Javascript函数.我的问题是传递单个值的jQuery语法.

Jam*_*man 6

首先,您需要一个元素选择器,例如

$('table')
Run Code Online (Sandbox Code Playgroud)

将选择html中的所有<table>元素.所以,

$('mytag')
Run Code Online (Sandbox Code Playgroud)

会给你你的元素.您将获得返回的jQuery对象(不是DOM对象).请参阅http://docs.jquery.com/Selectors

然后你想为你的每个元素调用一个函数.为此我们调用.each函数,并传递函数来调用每个元素:

$('mytag').each(function(){
    //function code goes here
});
Run Code Online (Sandbox Code Playgroud)

(参见http://docs.jquery.com/Utilities/jQuery.each)

这种情况下的函数称为匿名函数

然后你想引用迭代中的当前对象,所以我们使用DOM this项并将其包装到jquery对象中.要获取该值,我们使用.text()函数(http://docs.jquery.com/Attributes/text)

$('mytag').each(function(){
    $(this).text()
});
Run Code Online (Sandbox Code Playgroud)

注意:如果它是一个输入元素,那么你会使用.val()

将它传递给函数很容易:

    ...
    MyFunction($(this).text());
    ...
Run Code Online (Sandbox Code Playgroud)

text()函数有一个重载实现,允许您在传递值时设置文本:

    $(this).text(someval);
Run Code Online (Sandbox Code Playgroud)

因此,我们可以将其纳入我们的代码中

    ...
    $(this).text(MyFunction($(this).text()));
    ...
Run Code Online (Sandbox Code Playgroud)

制作我们的最终代码块:

$('mytag').each(function(){
    $(this).text(MyFunction($(this).text()));
});
Run Code Online (Sandbox Code Playgroud)