2016-12-09 66 views
0

HTML的Javascript比較HTML實體名稱

<button id="the_button" onclick="clicked()">&darr; Source &darr;</button> 

的Javascript

function clicked() { 
    if ($("#the_button").html() == "&darr; Source &darr;") { 
     alert($("#the_button").html()); 
    } 
} 

與上面的代碼,我沒有得到一個警報彈出...

但是,如果我將按鈕文本和比較字符串更改爲僅含有HTML實體的Source,則它可以工作:

HTML

<button id="the_button" onclick="clicked()">Source</button> 

的Javascript

function clicked() { 
    if ($("#the_button").html() == "Source") { 
     alert($("#the_button").html()); 
    } 
} 

有沒有辦法把它與HTML實體&darr;工作?

+1

請問,如果你比較' 「\ u2193來源\ u2193」'工作? – Pointy

+2

在任何情況下,使用'

+1

這是一個不太理想的設計,但如果您不想處理html實體,請將箭頭和文本'Source'包裝在3個區域中,只檢查包含'Source'的中間區域的html。我假設你將有多個使用'clicked()'函數作爲處理程序的按鈕? – Shilly

回答

3

我相信JS看到的實體,而不是參考。嘗試使用向下箭頭的Unicode字符引用(\u2193)。

var $btn = $('#the_button'); 
 

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

 
    var html = $btn.html(); // or .text() 
 
    
 
    if ('\u2193 Source \u2193' === html) { 
 
    \t alert(html); 
 
    } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="the_button">&darr; Source &darr;</button>

有用的參考:Unicode Table(提供Unicode和HTML參考文獻)。

2

這應該工作:

function clicked() { 
    if ($("#the_button").html() == '\u2193 Source \u2193') { 
     alert($("#the_button").html()); 
    } 
} 
1

您可以使用假元素藏漢

function clicked() { 
    if ($("#the_button").text() === $('<span>&darr; Source &darr;</span>').text()) { 
     // .... 
    } 
}