我正在通过json将数据从控制器发送到javascript,而json看起来像这样:
UsernameError: "<p>Username not valid, please</p><a href="www.google.com"> click here</a> <p>to validate it.</p>"
我正在用原始html对其进行转换,使其看起来像:
UsernameError: "<p>Username not valid, please</p><a href="www.google.com"> click here</a> <p>to validate it.</p>"
,当我尝试使用此方法来获取href
中的内容时
var href = $(decoded[0].innerText).attr('href');
以undefined
的形式出现,但是如果我在json中仅包含a
标签,则在变量中设置href值。
有什么想法,如果我在json中有更多标签,为什么我无法获得href值?
答案 0 :(得分:2)
如果您真的想在真正的html元素中处理内容,则可以使用jquery创建虚拟的html元素,然后使用find方法搜索a-tag。
let decodedString = '<p>Username not valid, please</p><a href="www.google.com"> click here</a> <p>to validate it.</p>';
let htmlContent = $('<div/>').html(decodedString);
let href = htmlContent.find('a').attr('href');
console.log(href);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 1 :(得分:0)
答案 2 :(得分:0)
因为您尝试在多个标签上使用.attr()
。
.attr()
仅适用于在单个标签上获取属性。
您只需选择要解码的标签即可。
尝试:
var href = $(decoded[0].innerText).find('a').attr('href');