如何找到可见的跨度html文本包含jQuery中的某些文本

时间:2017-09-20 05:46:07

标签: jquery

只是徘徊,可以查找visible span html text中包含特定文字的所有jQuery吗?

我有以下代码:

<div id="test">
  <span style="display:none;">one</span>
  <span style="display:inline;">two</span>
  <span style="display:inline;">three</span>
  <span style="display:none;">four</span>
  <span style="display:inline;">five</span>
</div>

无论如何,我可以使用jQuery找出是否有visible span contain text“两个”?

6 个答案:

答案 0 :(得分:0)

您可以使用(:visible)

var visiblespans = $('span:visible');

visiblespans.each(function(){
    if($.trim(this.text()) == 'two') {
        console.log(this.text());
    }
});

https://api.jquery.com/visible-selector/

答案 1 :(得分:0)

您可以使用#test > span:visible选择器获取可见的span元素,然后使用$(this).text()获取内部文本或$(this).html()内部HTML。

$("#test > span:visible").each(function() {
  console.log("Text:" + $(this).text());
  console.log("HTML:" + $(this).html());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="test">
  <span style="display:none;">one</span>
  <span style="display:inline;">two</span>
  <span style="display:inline;">three</span>
  <span style="display:none;">four</span>
  <span style="display:inline;">five</span>
</div>

答案 2 :(得分:0)

  1. 使用:visible选择器

      

    描述:选择所有可见的元素。

  2. 使用:contains选择器

      

    描述:选择包含指定文本的所有元素。

  3. var arr = $('#test').find('span:visible:contains(two)').map(function(){
    
    return $(this).text()
    }).get()
    
    console.log(arr)
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="test">
    <span style="display:none;">one</span>
    <span style="display:inline;">two</span>
    <span style="display:inline;">three</span>
    <span style="display:none;">four</span>
    <span style="display:inline;">five</span>
    </div>

答案 3 :(得分:0)

您可以使用解决方案https://jsfiddle.net/zk0Lvkmt/

&#13;
&#13;
<property name="PRESERVE_WS_ADDRESSING" value="true"/>
<property name="preserveProcessedHeaders" value="true" scope="default"/>
&#13;
$('#test').find('span').each(function(){
  if($(this).is(':visible')){
    console.log($(this).text());
  }
});
&#13;
&#13;
&#13;

只有<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="test"> <span style="display:none;">one</span> <span style="display:inline;">two</span> <span style="display:inline;">three</span> <span style="display:none;">four</span> <span style="display:inline;">five</span> </div> <{1}}

使用visible span text方法&amp;循环遍历所有范围使用console.log

检查跨度是否可见

希望这会对你有所帮助。

答案 4 :(得分:0)

您可以使用以下代码访问所有可见范围

$(function(){
  $.each($('span:visible'),function(ind,val){
    console.log(val);
    $(".visibleText").append(val);
  });
});

答案 5 :(得分:0)

您可以使用jquery过滤器方法仅过滤所需的元素。 所以, 你可以做到,

var Object = new ObjectId('59260b9a0067b336a0002237');

Game.findById(object, function(err, g_data){
            console.log('here you are', g_data); // Never gets here No matter what
        });

这将返回所有文字'two'可见

的元素