Attr更改标记a的url参数

时间:2018-03-25 13:14:24

标签: javascript python jquery django

我想用jquery更改标记a属性href,但结果并不比我预期的好。

当我用href更改attr属性时出现问题:

$('#doc-menu > li > a').attr('href', '/?child=False');
$('#doc-menu > li > a + ul > li > a').attr('href', '/?child=True')

网址清理完全。但在查询?child=True之前,我有另一个django网址。

<a href="{% url 'docs:nodes_detail' node.id %}" class="parent">{{ node.name }}</a>

此django url应该是jquery查询。

我需要这样的网址

35 /?child = True 就像这样

但是现在我已经完全清理了网址 /?child = True

有没有找到解决方案?

由于

2 个答案:

答案 0 :(得分:0)

您可以通过附加到现有网址而不是替换它来实现此目的。你可以这样做:

&#13;
&#13;
$("#doc-menu > li > a").attr("href", function(i, href) {
  return href + (href.indexOf('?') > -1 ? '&child=False': '?child=False');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<ul id="doc-menu">
  <li>
    <a href="test1.html" >I'm without params</a>
  </li>
  <li>
    <a href="test2.html?q=ihp" >I Have extra params</a>
  </li>
</ul>
&#13;
&#13;
&#13;

在这里,appended callback functionattr内的锚标记内的网址只有 type Results = List[(Operation[_], Any)] // ??? trait Operation[Out] { type Result = Out def apply(results: Results): Out } class SomeOp extends Operation[String] { def apply(results: Results) = "foo" } class OtherOp extends Operation[String] { def apply(results: Results) = results .collectFirst { case (_: SomeOp, x: String) => x } .getOrElse("") + "bar" } def applyAll( ops: List[Operation[_]], results: Results = Nil ): Results = ops match { case Nil => results.reverse case head :: tail => applyAll(tail, (head -> head(results)) :: results) } applyAll(List(new SomeOp, new OtherOp)).last._2 // foobar Any

答案 1 :(得分:0)

您可以获取当前网址,然后将字符串连接到结尾。

$request['description'] = strip_tags($request->description);