2013-10-02 2 views
3

Как получить значение атрибута из "data-column" в тексте externalHTML?Как получить значение атрибута из текста externalHTML?

$.each($groupingColumnUl[0].children, function(i1, o1) { 
    alert(o1.outerHTML.prop('data-column'); //.attr('data-column'); //.find('data-column'); 
}); 

Фактическое значение внутри outerHTML является

<li class='ui-state-default' data-column='Model'><span style='display:inline-block;' class='ui-icon ui-icon-close'></span>Model</li> 

Я хочу, чтобы получить значение «Модель»

+2

почему не только используйте '$ (o1) .data (" column ")'? BTW 'outerHTML' возвращает строку, а не объект jQuery. [data doc] (http://api.jquery.com/data) –

+0

'$ (o1.parent) .data ('column')' – ashley

+0

Вот интересная статья, в которой вы не используете функцию data() ... http://lookfirst.com/2011/12/dont-use-jquery-data-method-use-attr.html – fletchsod

ответ

2

Попробуйте.

$.each($groupingColumnUl[0].children, function(i1, o1) { 
    alert($(o1).data('column')); 
}); 

или (если старая версия JQuery):

$.each($groupingColumnUl[0].children, function(i1, o1) { 
    alert($(o1).attr('data-column')); 
}); 
+0

'o1' уже является объектом DOM, поэтому вы не можете использовать' get' на нем. Даже если o1 был объектом jQuery, все, что вы делаете, это получить объект DOM, а затем перевязать его с помощью jQuery. –

+0

Я получил непризнанную ошибку «get()» объекта. – fletchsod

+0

Извините ... ошибка из-за недостатка информации ... OP использует объект DOM с функциями JQuery ... = - = Отредактировано, но я до сих пор не знаю, хорошо ли это. – Oliboy50

0

outerHTML дает вам жало, а не объект JQuery, так что если вы хотите доступ к атрибуту данных элемента с помощью JQuery API, вы можете попробовать:

alert($(o1.outerHTML).data('column') 
+0

У меня есть неопределенная ошибка ...: -/ – fletchsod

+1

, если вы разместите свой код на jsfiddle, мы можем попытаться обнаружить эту ошибку. –

0

Попробуйте ниже

alert($(o1).data('column')); 
+0

Я получил непризнанную ошибку «parent()» объекта. – fletchsod

+0

'o1' не является объектом' jQuery', это объект 'DOM'. Также это получало бы данные о родителях, OP использовал 'outerHTML', который просто получает html этого объекта dom, а не родителей. –

+0

@PatrickEvans Обновлено. Спасибо за указание # –

0

OuterHTML Текст:

<input id ="UserControl" value ="New Custmer" defaultvalue="Cust415875" clientcontrolname = "CusterInfo"> 

Адресности clientcontrolname (атрибут) значение из outerHTML:

var strGrpAssoc = oGrpAssoc.outerHTML + "</input>"; 
    var xmlGrpAssoc = loadXMLString(strGrpAssoc.toLowerCase()); 
    var sClientControlName = xmlGrpAssoc.getElementsByTagName("input")[0].getAttribute("clientcontrolname"); 

function loadXMLString(txt) { 
    if (window.DOMParser) { 
     parser = new DOMParser(); 
     xmlDoc = parser.parseFromString(txt, "text/xml"); 
    } 
    else // code for IE 
    { 
     xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = false; 
     xmlDoc.loadXML(txt); 
    } 
    return xmlDoc; 
} 
Смежные вопросы