3

HTML

<tr class='test_file'>
    <td id=img_id><img src='"+ROOT_PATH+"/assets/arrow_black_right.png' /></td>
    <td colspan=2 id=fileName>"+fileName+"</td>
</tr><span>

在 jQuery 中单击id=fileName的 td 时,我需要更改图像。

如何使用 jQuery 获取img标签并更改其src属性?

我正在尝试做这样的事情:

$($(this).closest("img")).attr("src")
4

6 回答 6

7

使用.closest和的组合.find()

closest找到它的祖先

你需要找到它的后代而不是祖先

所以你需要首先找到最近的行,它包含filenameid 元素,然后findimg对应行的后代

$(this).closest('tr').find("img").attr("src"); // using find

或者

var $tr = $(this).closest('tr'); // get the closest row
$("img", $tr).attr("src");  // use a context to get the image
于 2013-06-17T18:22:25.903 回答
3

你可以使用.siblings()

JavaScript/jQuery

$(this).siblings("#img_id").children('img').prop('src');

编辑

JSF中间证明

于 2013-06-17T18:25:20.263 回答
1

“点击了 id=fileName 的 td”:您将不得不向上找到该tr元素,然后使用 find 搜索后代以找到图像元素。.parentNode将找到this<td>在这种情况下)的父元素。find("img")将找到包含在第一个td元素中的图像标签。

$($(this.parentNode).find("img")).attr("src")
于 2013-06-17T18:23:27.787 回答
1

您需要稍微清理一下您的代码,因为您有一个随机<span>的并且第一个<td>没有关闭。您的 id 需要用双引号括起来。

http://jsfiddle.net/pjdicke/tQ5vr/5/

<table>
   <tr class="test_file">
      <td id="img_id"><img src="http://www.abmuku.com/wp-content/uploads/2012/04/google-logo-small.jpg" /></td>
      <td colspan=2 id="fileName"><button>file name</button></td>
   </tr>
</table>

$('button').on('click', function(){
    $(this).closest('tr').find('td img').attr('src','http://atoralhistory.uconn.edu/images/Yahoo_logo_small.gif');
});
于 2013-06-17T18:42:43.757 回答
0

您必须替换new_src变量。

$(function() {
   $('#fileName').on('click', function() {
      $(this).closest('tr').find('img').attr('src', new_src);
   });
});
于 2013-06-17T18:28:13.617 回答
0

试试这个

$(this).siblings().find('img').prop('src','your_image_url');

演示

于 2013-06-17T18:26:34.583 回答