2016-04-27 4 views
2

Я хочу .split(" ") значение атрибута данных, но она возвращает пустой:.split() атрибут данных не работает, когда он должен

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

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

Почему это не работает?

Адрес jsFiddle.

+1

Почему вы используете JQuery для строки, просто используйте 'bulletcontent.split (» «)' – jcubic

+0

Почему вы оберточной '' bulletcontent' в jQuery' ? – Rayon

+1

'jQuery (« hello world »)' будет селектором, который соответствует тегу hello с тегом world inside. – jcubic

ответ

4

Смотрите скрипку: https://jsfiddle.net/43439o8o/2/

Вам не нужно, чтобы получить .text(), то .attr() уже вернуть его содержание:

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

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

Как вы можете видеть на .attr() method docs, вы можете использовать его для возврата или установите значение атрибута:

Получить значение атрибута для первого элемента в наборе согласованных элементов или установить один или несколько re для каждого согласованного элемента.

0

изменить эту строку:

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

Вы можете использовать непосредственно функции разбиения() на строке:

var words = bulletcontent.split(" "); 

, например, вы можете увидеть это link

0

.split() - это метод String в Javascipt, поэтому нет необходимости использовать jQuery. просто добавьте .split(' ') рядом с вашей переменной (String).

.split() возвращает массив строк, зависит от того, как вы хотите вырезать исходную строку.

Это должно сработать для вас.

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

Вы можете использовать это:

var words = bulletcontent.split(" ");