

jQuery初心者です。

div内に`&nbsp;`が入っていたらdivにcssを追加したいのですが  
下記のコードでは動きません。  
どういう書き方をしたら動くのか教えてください。

[code]

    $(function() {
    　if($('.pf-list').has('&nbsp;')) {
    　$(this).css({
      　　backgroundColor: '#ccc';
    　　});
    　}
    });
    
[/code]


CC BY-SA 3.0
2017-08-02T07:11:07.167
36875
2017-08-02T09:45:37.447
2017-08-02T07:12:43.833
5044
24698
question
jquery
&nbsp;を持つdivタグだけにCSSを適用させたいです


通常はテキストののセレクターは以下のAPIを使えるのですが、  
<https://api.jquery.com/contains-selector/>

`&nbsp;`だけは特殊なものは直接テキストをgrepしないと使えないです。  
<https://stackoverflow.com/questions/29275742/can-i-select-an-element-that-
contains-nbsp-within-its-html>

[code]

    $(function() {
      var regEx = /&nbsp;/gm;
      var elements = $(".pf-list").filter(function(index, ele) {
         if(regEx.test($(ele).html())) {
           　$(ele).css("background-color", '#ccc');
        }
      });   
    });
    
[/code]


CC BY-SA 3.0
2017-08-02T07:33:51.353
36878
2017-08-02T07:33:51.353
22665
36875
answer


文字参照`nbsp`はユニコード符号位置でいう`U+00A0`に相当します（[仕様](https://www.w3.org/TR/html5/syntax.html#entity-
nbsp), [参考](http://www.fileformat.info/info/unicode/char/00a0/index.htm)）。  
このことから[:contains() Selector](https://api.jquery.com/contains-
selector/)を用いて要素の選択が可能です。

[code]

    $('div:contains("\u00A0")').css({ backgroundColor: '#ccc' });
[/code]

[code]

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div>apple</div>
    <div>banana</div>
    <div>che&nbsp;rry</div>
    <div>durian</div>
[/code]


CC BY-SA 3.0
2017-08-02T08:09:33.173
36881
2017-08-02T09:45:37.447
2017-08-02T09:45:37.447
36875
answer