这让我疯了,我正在尝试更改由html中显示的表读取的href属性。
这是我的HTML代码
<div id="packgeImages">
<ul>
<li><a href="" class="title" rel="shadowbox">Link1</a></li>
<li><a href="" class="title" rel="shadowbox">Link2</a></li>
<li><a href="" class="title" rel="shadowbox">Link3</a></li>
<li><a href="" class="title" rel="shadowbox">Link4</a></li>
</ul>
</div>
这是更改
的JQuery代码<script type="text/javascript">
$(document).ready(function () {
var hrefText = $('[rel=shadowbox]').attr('href');//Get the Value of href from Li
$('#fullImgGridView tr').each(function (i) {
if (!this.rowIndex) return; // skips first row
var bigSizeImagePath = this.cells[0].innerHTML; //Read Value
alert(bigSizeImagePath); //Alert Value, Checked/Works Fine
$('[rel=shadowbox]').attr("href", bigSizeImagePath); //Sets the Paths using last record of table//
});
});
</script>
现在它可以工作,但问题是它将href属性设置为表的最后一条记录。而不是一个接一个。 请帮我解决一下这个。感谢
答案 0 :(得分:1)
你的问题在
$('[rel=shadowbox]').attr("href", bigSizeImagePath);
为匹配href
的所有对象设置[rel=shadowbox]
。你只想设置这个:
$(this).find('a').attr("href", bigSizeImagePath);
您的HTML不清楚,但如果您确实有TABLE
和UL
并且您正在尝试从TABLE更新UL,请尝试以下操作:
$('#packgeImages li:eq('+(this.rowIndex-1)+') a[rel=shadowbox]').attr("href", bigSizeImagePath);
...使用rowIndex
从LI
中选择对应的编号<div id="packgeImages">
并在其上设置href。
答案 1 :(得分:0)
问题是您的过滤器会选择所有<li>
标记
$('[rel=shadowbox]').attr("href", bigSizeImagePath);
尝试选择匹配的索引:
$('[rel=shadowbox]').eq(this.rowIndex - 1).attr("href", bigSizeImagePath);
(this.rowIndex - 1)是因为你跳过第一行