Soru jQuery Bir öğeden belirli metni kaldırma


Web sitemdeki bir öğeden "By:" metnini kaldırmak istiyorum. Metnin geri kalanı orada kalmasını istiyorum. Bunu jQuery ile nasıl başarabilirim? Teşekkür ederim.

HTML

<div id="text">By: Anonymous From Minnesota</div>

Ben sadece olmasını istiyorum:

<div id="text">Anonymous From Minnesota</div>

19
2017-12-25 05:14


Menşei


lütfen html gönderin - themerlinproject
metni hangi öğenin niteliğinden kaldırın? Bir metin giriş alanının şu anki değeri gibi mi? Ya da bir div veya p elementi içindeki sadece keyfi metin? - codercake
@themerlinproject HTML eklendi - henryaaron
@codercake Sadece içindeki metin div veya p - henryaaron


Cevaplar:


Her öğeyi "By:" ile bulmak ve kaldırmak istiyorsanız, bunu deneyebilirsiniz:

$(':contains("By:")').each(function(){
    $(this).html($(this).html().split("By:").join(""));
});

Bu, herhangi bir öğedeki "By:" oluşumunu kaldırır. Belirli özellikteki öğeleri hedeflemek istiyorsanız, yalnızca değiştir $(':contains("By:")') Seçici size uygun olanı dahil etmek.


31
2017-12-25 05:29



Bu aradığım gibi görünüyor, ancak, bir sebepten dolayı, rastgele bir virgül ekleniyor: jsfiddle.net/xSphc - henryaaron
Hah! Ayırıcıya () katılmak için ayırıcı parametresini eklemeyi unuttum. Yanıtları ("") ile birleştirdim. Temel olarak, ne yapacağı, dizeyi ayırıcı olarak "By:" kullanarak bir diziye böler, ardından dizi elemanlarını ayırıcı olarak hiçbir şey kullanmadan bir dizeye bağlar. Umarım yardımcı olur :) - Andrew Odri
Temel .split (). Join () ayetlerinin .replace (// g, "") performansını görmek istiyorsanız, bunu ilginç bulabilirsiniz: jsperf.com/split-join-vs-regex-replace - Andrew Odri
Maalesef bu kodu değiştirdiğimde: $('table#ReviewBox tbody tr td table tbody tr td i:contains("By:")').each(function(){ $(this).html($(this).html().split("By:").join("")); }); Sadece "By:" un ilk örneğini kaldırdı, bunun için bir düzeltme var mı? - henryaaron
Kaynak HTML'ye sahip bir kemanınız varsa hep çok fazla ... Seçicinin sadece bir nesne ile eşleştiğini veya ilk değiştirmeden sonra bir hatanın atıldığını varsayalım. - Andrew Odri


düzenli ifadeler kullanarak daha küresel bir çözüm. Bu yerini alacak By: string yapınız değişse bile.

var str = $('div').text().replace(/By:/g, '');
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="text">By: Anonymous From Minnesota</div>


10
2017-12-25 05:31





var str = $("#text").text();
$("#text").text(str.substring(3));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="text">By: Anonymous From Minnesota</div>

Javascript'in kullanımı substring ve divunuza kolayca erişmek için bir ID verin:

html:

<div id="text">By: Anonymous From Minnesota</div>

jQuery:

var str = $("#text").text();
$("#text").text(str.substring(3));

Bunu bir satırda da yapabilirsin:

$("#text").text($("#text").text().substring(3));

3
2017-12-25 05:28





div'a benzersiz bir kimlik ver, t:

$('#div_id').html($('#div_id').html().substring(3));

keman: http://jsfiddle.net/ChUB4/


1
2017-12-25 05:31