这里我试图将选项标签中的值与带有JSON对象的值进行比较。
我有2种数据表格
格式-1 - 已解码
<li>please click <a target="_blank" href="https:app.answers/detail/a_id/140">here</a></li>
格式-2 - 编码
<li>please click <a target="_blank" href="https://app.answers/detail/a_id/140">here</a></li>
在下面的代码中,我使用unescape
来解码编码值和
使用解码值进行比较并进行检查,因为选项值采用解码格式。
for(j=0;j<multiValues.length;j++){
var escapedVal = unescape(multiValues[j]);
console.log(escapedVal); //this was suppose to show <li>please click <a target="_blank" href="https:app.answers/detail/a_id/140">here</a></li> but its showing <li>please click <a target="_blank" href="https://app.answers/detail/a_id/140">here</a></li>
$(v).find('option[value="'+escapedVal[j]+'"]').prop('selected',true).attr("selected","selected");
}
当我在控制台中记录escapedVal
时,它仍然只以编码格式显示。但我想解码格式2并将其与format 1
进行比较,因为format 1
已经被解码。我只是在选项值中进行比较,但我没有在任何地方显示它。
我该怎么做?
答案 0 :(得分:1)
您需要首先解码,然后比较
function decodeHTML( str )
{
var div = document.createElement( "div" );
div.innerHTML = str;
return div.innerText;
}
<强>演示强>
function decodeHTML( str )
{
var div = document.createElement( "div" );
div.innerHTML = str;
return div.innerText;
}
var value = '<li>please click <a target="_blank" href="https://app.answers/detail/a_id/140">here</a></li>';
var encodedValue = '<li>please click <a target="_blank" href="https://app.answers/detail/a_id/140">here</a></li>'
var recoveredValue = decodeHTML( encodedValue );
console.log( value == recoveredValue )