我正在尝试获取html图片的src
属性。看起来我可以在DOM中找到img
元素,但src
属性未定义,任何想法为什么?
HTML:
<table id="comboTable" style="width: 100%; height: 100%; margin-bottom: 10px;" data-bind="click: $root.selectCombo">
<tr>
<td>
<img class="selector" src="~/Images/roundOffButton.png" style="position: absolute;margin-left: -57px; margin-top: -35px;" />
</td>
<td style="height: 35px;">
<table style="width: 100%; background-color: #0097D8;padding:5px;">
<tr style="padding:5px;">
<td style="height: 36px; padding-left: 14px; font-weight: bold;color: black; margin: 1px; width: 70%; text-align:left;">
<span data-bind="text: Description" style="padding-left: 5px;" />
</td>
<td style="width: 30%;padding:8px; text-align: center;color: white; background-color:black;">
<span data-bind="text: formatCurrency(Price)" style="font-size: 14px; white-space: nowrap;
font-weight: bold;" />
</td>
</tr>
</table>
</td>
</tr>
</table>
使用Javascript:
var comboSpan = $("span:contains('" + description + "')");
var img = $(comboSpan).closest(".selector");
alert('Image object - ' + img);
var src = $(img).attr('src');
alert(src); //src is undefined
答案 0 :(得分:1)
<强> Working Demo 强>
使用img
的有效选择器,img
和span
具有不同的父级,因此在这种情况下您无法直接使用closest()
。
此外comboSpan,img
已经是jQuery对象。您不需要$(comboSpan)
使用.closest('#comboTable')
,因为您的层次结构在表格中有一个表格。
<table>
<tr>
<td>
<img> //You need this.
</td>
<td>
<table>
<tr>
<td>
<span> //You have this.
</td>
</tr>
</table>
</td>
</tr>
</table>
最终代码:
var comboSpan = $("span:contains('" + description + "')");
var img = comboSpan.closest('#comboTable').find('.selector'); //Change this line
alert('Image object - ' + img);
var src = img.attr('src');
alert(src); //src is undefined
答案 1 :(得分:0)
您需要找到最接近的tr
然后.selector
img:
var comboSpan = $("span:contains('" + description + "')");
var img = $(comboSpan).closest("tr").find(".selector");// find tr and then img
alert('Image object - ' + img);
var src = $(img).attr('src');
alert(src); //src is undefined
答案 2 :(得分:0)
您首先尝试找到tr
然后找到它的孩子img
(即.selector
)
var img = $(comboSpan).closest('tr').find('.selector');
试试这个:
var comboSpan = $("span:contains('" + description + "')");
var img = $(comboSpan).closest('tr').find('.selector');
alert('Image object - ' + img);
var src = $(img).attr('src');
alert(src);
答案 3 :(得分:0)
使用此:
var img = comboSpan.closest('tr').find('.selector');
// no need to wrap comboSpan with jquery as comboSpan is already a jquery object
答案 4 :(得分:0)
用此查看。
$('.img1 img').attr('src');
答案 5 :(得分:0)
只需使用如下:
var src = $('.selector').attr('src');
alert(src);
答案 6 :(得分:-1)
我的回答是爱的
$('.img1 img').attr('src');