2016-04-27 11 views
2

ich .split(" ") ein Datenattributwert wollen, aber es gibt leer:.split() ein Datenattribut funktioniert nicht, wenn es sollte

var bulletcontent = jQuery(this).closest("div").find("p").attr('data-bcontent'); 

// split content into words 
var words = jQuery(bulletcontent).text().split(" "); 

Warum ist das nicht funktioniert?

Hier ist ein jsFiddle.

+1

Warum Sie jQuery für String verwenden, benutzen Sie einfach 'bulletcontent.split (‘ ‚)' – jcubic

+0

Warum Umwickeln Sie 'bulletcontent' in' jQuery' ? – Rayon

+1

'jQuery (" Hallo Welt ")' wird Selektor sein, der das Tag Hallo mit dem Tag Welt innerhalb übereinstimmt. – jcubic

Antwort

4

Siehe Geige: https://jsfiddle.net/43439o8o/2/

Sie nicht den .text() erhalten müssen, die .attr() bereits seinen Inhalt zurück:

var bulletcontent = jQuery(content).attr('data-bcontent'); 

// split content into words 
var words = bulletcontent.split(" "); //Remove the .text() method 

Wie Sie am .attr() method docs sehen können, können Sie es verwenden, um zurückzukehren oder Setzen Sie den Attributwert:

Holen Sie den Wert eines Attributs für das erste Element in der Menge der übereinstimmenden Elemente oder setzen Sie eins oder mo Re Attribute für jedes passende Element.

0

Änderung dieser Zeile:

var words = bulletcontent.split(" "); 
0
$(document).ready(function() { 
    $(document).on("click", ".click", function() { 
    // find the bullet content stored in p tag inside li 
    var content = $(this).prev("p").attr('data-bcontent');//get the p attr 
    alert(content) 
    var words = content.split(' ')//split 
    alert(words[0]);//alert first value 
    alert(words[1]);//alert second value 
    }); 
}); 

DEMO

0

können Sie direkt split() auf der Saite Funktion verwenden:

var words = bulletcontent.split(" "); 

zum Beispiel können Sie diese sehen link

0

.split() ist eine Methode von String in Javascipt, so dass es keine Notwendigkeit gibt, jQuery zu verwenden. Fügen Sie einfach .split(' ') direkt neben Ihrer Variablen (String) hinzu.

.split() Rückgabe Array von Zeichenfolgen hängt davon ab, wie Sie die ursprüngliche Zeichenfolge einfügen möchten.

Dies sollte für Sie arbeiten.

 var words = bulletcontent.split(" "); 
0

Sie können diese verwenden:

var words = bulletcontent.split(" "); 
Verwandte Themen