无法使用每个函数将href属性更改为标记并从表中读取数据

时间:2013-04-16 07:56:02

标签: jquery

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

2 个答案:

答案 0 :(得分:1)

你的问题在

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

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

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

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

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

...使用rowIndexLI中选择对应的编号<div id="packgeImages">并在其上设置href。

答案 1 :(得分:0)

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

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

尝试选择匹配的索引:

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

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