需要 DOM 操作帮助
Posted
技术标签:
【中文标题】需要 DOM 操作帮助【英文标题】:DOM Manipulation help needed 【发布时间】:2012-09-21 21:09:53 【问题描述】:<div id="main">
<div class="navigate">
<ul>
<li>
<a href="http://localhost/xm/index.php"><span>xm</span></a> »
</li>
<li>
<a href="http://localhost/xm/index.php?action=admin"><span>Admin</span></a> »
</li>
<li>
<a href="http://localhost/xm/index.php?action=admin;change=name;random02342=randomvaluetoo320230"><span>change</span></a>
.......
从这个 html 代码中,我必须在变量中获取随机生成的数据“random02342=randomvaluetoo320230”,这也是随机生成的 random0234 和随机值。我如何通过 javascript(或非 jquery)实现这一点?
编辑:random02342 和 randomvaluetoo320230 是在服务器端随机生成的。所以就像每次像 1stHash4324kjkjdas324324=And2ndAnotherHash324324asd23432 这样的新哈希一样
【问题讨论】:
这些值是否有模式,例如如果它总是以“随机”开头?还是它总是有三个查询参数?你知道查询字符串中的所有其他参数吗? 我知道的所有其他内容和第三个内容都是随机生成的,例如 ?action=admin;change=name;1stHASH=2ndHASH 并且之间总是有“=”。 【参考方案1】:这会得到它,尽管它可能不会因优雅而赢得任何奖项:
var m = document.getElementById('main').innerHTML.match(/random(\d+)=randomvaluetoo(\d+)/);
// m[1] and m[2] are the two random values.
【讨论】:
你试过你的例子吗?如果您有生成值的模式,这将适合 在我看来,您要么需要删除 '/' 要么首先拆分查询字符串 "random" 和 "randomvaluetoo" 也是服务器端随机生成的.. =/ 所以它就像 HASH23434=anotherHASH2342 @Petar 你应该在你的问题中澄清这一点【参考方案2】:根据您的评论:
var value = $('selector').attr('href').split(';')[2].split('=');
这将为您提供 value[0] - 名称和 value[1] - 值 但是,这仅适用于有 3 个查询参数并且随机参数是第三个时
这也可能有用Parse query string in JavaScript
【讨论】:
不客气,虽然不是很好的解决方案...考虑重构它会很好【参考方案3】:var first, second;
var q = $('.navigate ul li a[href*="change=name"]').attr('href').split(';').filter(
function()
return this.contains('random');
).join().replace(/[a-zA-z]/g, '').split('=');
first = q[0];
second = q[1];
【讨论】:
以上是关于需要 DOM 操作帮助的主要内容,如果未能解决你的问题,请参考以下文章