0

这让我发疯,我正在尝试更改由 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 属性设置为表的最后一条记录。而不是一一。 请帮我解决一下这个。谢谢

4

2 回答 2

1

你的问题在

$('[rel=shadowbox]').attr("href", bigSizeImagePath);

href它为所有匹配的对象设置[rel=shadowbox]。你只想设置这个:

$(this).find('a').attr("href", bigSizeImagePath); 

您的 HTML 不清楚,但如果您实际上有 aTABLE和 aUL并且您正在尝试从 TABLE 更新 UL,请尝试以下操作:

$('#packgeImages li:eq('+(this.rowIndex-1)+') a[rel=shadowbox]').attr("href", bigSizeImagePath);

...用于rowIndex从中选择相应的编号LI并在其<div id="packgeImages">上设置href。

于 2013-04-16T07:58:03.723 回答
0

问题是您的过滤器选择了所有<li>标签

$('[rel=shadowbox]').attr("href", bigSizeImagePath);

尝试选择匹配的索引:

$('[rel=shadowbox]').eq(this.rowIndex - 1).attr("href", bigSizeImagePath);

(this.rowIndex - 1) 是因为你跳过了第一行

于 2013-04-16T08:11:25.250 回答