Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   undefine при выводе dataMedia (https://javascript.ru/forum/jquery/55539-undefine-pri-vyvode-datamedia.html)

Aleksanderj 03.05.2015 10:31

Здравствуйте. Вопрос пытался задать с утра, но по-видимому, были какие-то ремонтные работы тут, так что вышел только заголовок вопроса :) Так что вот мой вопрос. Вот есть:
<div class="block">
       <a class="listen_href" title="«Lethal Bizzle -Дабстеп»" alt="«Lethal Bizzle -Дабстеп» " data-artist="Lethal Bizzle" data-resource="3131353730/3835" data-id="115702719_2664085" href="/search/Lethal+Bizzle/%D0%97%D0%B0" 
data-media-url="http://audio.me/u17225656/audios/0f4c99932c2d.mp3?extra=yr4PWUSCjBQxoUENvlJ1foWNIz">
 <span>Lethal Bizzle -Дабстеп</span>
        <br></br>
        Дабстеп
</a>  
<div>

Вывожу ссылку с названием песни и ссылкой на нее (из data-media-url):
function b(i) {
var j = $(".listen_href", i);
var text = $.trim(j.text());	
var rg = /([(\][)])/mig ;
var spanText = $.trim($('span', j).text()).replace(rg, "\\$1");
var reg = new RegExp("^("+spanText+")([\\s\\S]+)$","mig");
text = text.replace(reg, function(j,b,c) {
return  $.trim(c) + " - " +  b }).replace(rg, "");
var h = $('<div><a style="display: block; height: 16px; width: 16px;" download="' + text + '.mp3" href="' +j.data('mediaUrl') + "?/" + text + '.mp3" class="download"></a><div>');


Подскажите, почему j.data('mediaUrl') не работает?

laimas 03.05.2015 13:01

Это + "?/" + что?

Aleksanderj 03.05.2015 13:34

Цитата:

Сообщение от laimas (Сообщение 369267)
Это + "?/" + что?

это http://audio.me/u17225656/audios/0f4...oUENvlJ1foWNIz + Lethal Bizzle -Дабстеп Дабстеп.mp3

рони 03.05.2015 15:22

Aleksanderj,
строка 9 и кто у вас this?

Aleksanderj 03.05.2015 15:35

Цитата:

Сообщение от рони (Сообщение 369281)
Aleksanderj,
строка 9 и кто у вас this?

Извиняюсь, убрал. Дело в том, что если я вставляю j.data("id") или j.data("artist"), то значения этих атрибутов выводятся. А вот с атрибутом data-media-url нет, в интернете инфомации по этому поводу очень мало и не достаточно понятная...:(

laimas 03.05.2015 15:41

У вас вот такой url будет:
http://audio.me/u17225656/audios/0f4c99932c2d.mp3?extra=yr4PWUSCjBQxoUENvlJ1foWNIz?/Lethal Bizzle -Дабстеп Дабстеп.mp3

И как думаете сервером будет обработан запрос?

А a.data('mediaUrl') работает, проверьте - alert(a.data('mediaUrl')).

Aleksanderj 03.05.2015 15:47

Не работает, тоже ошибка undefine

рони 03.05.2015 16:07

Aleksanderj,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){

    var a = $('.block').find('a');
    alert(a.data('mediaUrl'))


});


  </script>
</head>

<body>  <div class="block">
       <a class="listen_href" title="«Lethal Bizzle -Дабстеп»" alt="«Lethal Bizzle -Дабстеп» " data-artist="Lethal Bizzle" data-resource="3131353730/3835" data-id="115702719_2664085" href="/search/Lethal+Bizzle/%D0%97%D0%B0"
data-media-url="http://audio.me/u17225656/audios/0f4c99932c2d.mp3?extra=yr4PWUSCjBQxoUENvlJ1foWNIz">
 <span>Lethal Bizzle -Дабстеп</span>
        <br></br>
        Дабстеп
</a>
</div>

</body>

</html>

Aleksanderj 03.05.2015 16:20

рони,
мне надо как-то вставить значение data-media-url в
var h = $('<div><a style="display: block; height: 16px; width: 16px;" download="' + text + '.mp3" href="' +j.data('mediaUrl') + "?/" + text + '.mp3" class="download"></a><div>');
, который я написал в самом начале.

laimas 03.05.2015 16:27

Нельзя такие значения подставлять в url, кодировать их надо - ?, пробелы...


Часовой пояс GMT +3, время: 00:29.