如何在使用实体时在jquery中获取标记内的确切文本值

时间:2017-01-27 07:20:51

标签: javascript jquery html

我在这样的

锚标签中有一个列表
<a href="#" class = "set_priority" data-value = "{{$candidate->id}}" style="text-decoration: none;">
   @if($candidate->priority == "") 
     <li>&nbsp;&nbsp;&nbsp;Prioritize</li></a><br>
   @elseif($candidate->priority == "yes")
     <li>&nbsp;&nbsp;&nbsp;Deprioritize</li></a><br>
   @endif

我使用了实体&amp; nbsp来进行造型。上面的代码根据服务器的响应生成html标记。所以它可能看起来是其中之一

<li>&nbsp;&nbsp;&nbsp;Prioritize</li>
<li>&nbsp;&nbsp;&nbsp;Deprioritize</li>

我想在点击列表项时提醒某些事情。我不知道在使用&nbsp时如何比较

$('.set_priority').on('click',function(){

    var priority_value = $(this).first().text();
    if (priority_value = "Prioritize") {
        alert('he Prioritised');
    }

    else if (priority_value = "Deprioritize") {
        alert('Prioritised');
    }


});

它总是警告alert('he Prioritised');无论条件如何。

3 个答案:

答案 0 :(得分:0)

将临时变量替换为空,然后进行比较。如: -

 var priority_value = $(this).first().text();
 var temp = priority_value.replace(/&nbsp;/gi,'');
    if (temp == "DePrioritize") {
        alert('he Prioritised');
    }

    else if (temp == "Deprioritize") {
        alert('Prioritised');
    }

答案 1 :(得分:0)

您应该使用比较运算符而不是赋值运算符,并使用 trim 方法删除空格。

$('.set_priority').on('click',function(){

    var priority_value = $(this).first().text().trim();
    if (priority_value == "Prioritize") {
        alert('he Prioritised');
    }

    else if (priority_value == "Deprioritize") {
        alert('Prioritised');
    }
});

答案 2 :(得分:0)

我认为您应该像这样设置click处理程序

$('set_property li').on('click', function(){
  var priority = $(this).first().text(); // This will give you the actual clicked element
  // .... rest is same
});