如何用js编码数字?

时间:2017-02-04 07:53:06

标签: javascript ajax

我想编码一个数字,其中url在js中传递了标签。我正在尝试encodeURIComponent(),但这不起作用。

此标记包含在js代码中:

<a href="index.php?act=viw_product&id=encodeURIComponent('+val['id']+')" > </a>

我需要用base64格式编码id吗?

1 个答案:

答案 0 :(得分:0)

它不起作用,因为除了少数例外,JavaScript不会在HTML元素的内部参数中随意运行。 HTML参数只是普通的字符串。

我认为您的代码存在更多基本问题,但至少要对值进行编码并将其添加到字符串中,您需要更改将值连接在一起的方式。

var url = 'index.php?act=viw_product&id=' + encodeURIComponent(val['id']);

这将获取val['id']并对其进行编码,然后将其附加到路径字符串的末尾并将其存储在url变量中。

现在url将包含末尾带编码数字的整个路径。但是,您需要实际告诉脚本找到<a>标记,并将href参数设置为等于该值才能生效。

以下是原始javascript中的基本示例:

&#13;
&#13;
// find out link element
var el = document.querySelector('a');

// encode our URL with a wacky ID
var id = '1#B!70_4';
var url = 'index.php?act=viw_product&id=' + encodeURIComponent(id);

// set the URL on our href attribute
el.setAttribute('href', url);
&#13;
<a href="#">click me</a>
&#13;
&#13;
&#13;

如果您运行上述示例并将鼠标悬停在链接上,则可以看到生成的网址已应用于链接href属性。