【问题标题】:changing href doesn't work更改href不起作用
【发布时间】:2011-03-11 20:22:09
【问题描述】:

我喜欢在 url 中动态添加查询字符串。整张桌子来自 jquery 数据表

当我更改选择框(更改时)时, 我需要将 this 值添加到 td.so 中的所有锚点,所以我通过以下代码做到了这一点。 当我提醒 href 我得到了我想要的

("XXX?YY=YY&bsort=ZZ")

。 但是锚href没有那个(&bsort = XX)查询字符串(通过fire bug检查) 怎么了?

我的代码

$('select[name="category_table_length"]').change(function(){
    var b,href;
    b = $(this).val();
        $('td a').each(function(){
        href = $(this).attr('href');
        href = href+"&bsort="+b; 

        $(this).attr('href',href);
        });
});

【问题讨论】:

  • 是的!我可以在每个里面得到警报
  • 你能在重新分配之前用console.log 测试href 内容吗? (并为我们带来结果)
  • 对不起,我只得到这个(控制台未定义)错误
  • 好的,改用alert("Href = " + href);
  • 在分配之前 :Href =category?id=1&sort=next ...在 Href = category?id=1&sort=next&bsort=50 之后

标签: javascript jquery


【解决方案1】:

它对我有用:http://jsfiddle.net/7QTzt/

你的 HTML 有效吗?

顺便说一句,当您第二次从下拉列表中选择时,您的代码没有考虑到必须删除“&bsort”属性。或许可以考虑a more sophisticated approach

【讨论】:

  • 是的,我也从单独的页面获得结果。在我的情况下,来自 jquery 数据表的表会影响
  • @gowri:那么你问题中的测试用例是无效的,你需要提供失败的实际代码。
【解决方案2】:

试试这个example

HTML:

<select name="category_table_length">
    <option value="1">sort 1</option>
    <option value="2">sort 2</option>
    <option value="3">sort 3</option>    
</select>

<table id="mytable">
    <tr>
        <td><a href="/page.php?data=a">anchor 1</a></td>
    </tr>
    <tr>
        <td><a href="/page.php?data=a">anchor 2</a></td>
    </tr>
</table>

JS:

$('select[name="category_table_length"]').change(function(event){

    var 
        actual_value = $(this).val(),
        new_href = "";

    $('#mytable tr td a').each(function(i, el){

        if (!$(el).attr("original_href"))
            $(el).attr("original_href", $(el).attr('href') )

        new_href = $(el).attr("original_href") + "&bsort=" + actual_value;

        $(el)
            .attr('href', new_href)
            .html("change " + new_href);

    });
});

如果你没有“?”应该改为:

new_href = $(el).attr("original_href") + "?bsort=" + actual_value;

【讨论】:

  • 是的,我也从单独的页面获得结果。在我的情况下,来自 jquery 数据表的表会影响..任何想法!
  • .html("change" + new_href);有什么用
  • 你可以放html表。 . html( 我得看看什么效果好,因为链接是假的
猜你喜欢
  • 2019-08-08
  • 1970-01-01
  • 2015-11-09
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
相关资源
最近更新 更多