在jquery中循环遍历类名为'blah'的所有元素,并在函数中使用元素的内容

时间:2011-09-28 13:02:57

标签: javascript jquery

这是我在伪代码中尝试做的事情

Find all <td> Elements with Class name 'OSGridRef'
For each <td> element pass the text of that <td> element into a function called ConvertToLatLong
Update an <td> element in the same  table row that has the class name 'LatLong' with the results of the function.

我没有在常规JavaScript或jQuery中如何做到这一点。

任何想法?

5 个答案:

答案 0 :(得分:3)

这应该这样做。当你说'内容'时,我认为你的意思是里面的所有文字?

$(function() {
  $('tr:has(.OSGridRef)').each(function() {
    var content = $(this).find('.OSGridRef').text();
    var result = ConvertToLatLong($.trim(content));
    $(this).find('.LatLong').text(result);
  });
});

答案 1 :(得分:2)

嗯,考虑到我们只使用伪代码,这不是很好,但是这里有:

$('.OSGridRef').each(function() {
    var $t = $(this);
    $t.closest('tr').find('.LatLong').text(
        ConvertToLatLong($t.text())
    );
});

答案 2 :(得分:1)

使用each对元素进行迭代。

$(function() {
    $('.OSGridRef').each( function() {
        var content = $(this).text(), // or .html() if you need the HTML
            latlong = ConvertToLatLong(content),
            $latlongholder = $(this).closest('tr').find('.LatLong');
        $latlongholder.text(latlong);
    });
});

答案 3 :(得分:1)

在jquery中,您可以使用selectors查找所需的所有元素

然后你可以使用each()函数来调用你的“ConverttoLatLong”函数。

要更新元素,您需要选择它(使用前面看到的选择器)然后修改它值/ text / etc.

jQuery.com上的文档可以帮到你很多

答案 4 :(得分:0)

$('.OSGridRef').each(function() {
  $('.LatLong').val(ConvertToLatLong($(this).val()));
})

这是我的第一个猜测,我不知道它们是否是输入或其他东西,但如果你能提供更多细节(如html)我可以编辑这个