更改href不起作用

时间:2011-03-11 11:22:23

标签: javascript jquery

我想在网址中动态添加查询字符串。整张桌子来自 jquery Datatable

当我更改选择框时(更改时), 我需要将 this 值添加到td中的所有锚点。所以我通过以下代码执行此操作。 当我提醒 href 我得到了我想要的东西

  

( “XXX YY = YY&安培; bsort = ZZ”)

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

mycode的

$('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);
        });
});

2 个答案:

答案 0 :(得分:1)

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

您的HTML有效吗?

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

答案 1 :(得分:0)

试试这个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;