Ответ 1
Вы ищете:
var x= $('ns\\:text').attr('value');
return x;
Ref:
Как я могу выбрать следующее в jQuery?
<ns:text value="my value" />
Я попробовал фрагменты ниже, но безрезультатно. Возможно ли это?
var x= $('ns:text').attr('value');
return x;
var x= $('text').attr('value');
return x;
Вы ищете:
var x= $('ns\\:text').attr('value');
return x;
Ref:
Посмотрите JQuery, XML и пространства имен.
Кажется, что это должно работать:
var x = $("ns\\:text").attr("value");
Я попробовал версию "[nodeName = gd: when]", и сначала она работала, но затем, когда я обновил jQuery с 1.4.3 до 1.5.2, он сломался. Не уверен, какая из версий является проблемой.
Решение заключалось в использовании подхода "gd \: when", но он не работал в Google Chrome, поэтому я, наконец, придумал способ, который работает во всех браузерах, которые я пробовал:
// Need to work out how to handle namespaces on some elements.
var namespace = "gd\\:"; // Most prefer this...
var startDateElement = $(this).find( namespace + "when" );
if( startDateElement.length == 0 )
{
namespace = ""; // ...but some don't!
startDateElement = $(this).find( namespace + "when" );
}
Затем вы можете использовать префикс для других элементов с расширением имен.
См. http://www.kajabity.com/index.php/2011/05/handling-xml-elements-with-namespaces-in-jquery/.
Используйте обратную косую черту, которая сама должна быть экранирована, поэтому JavaScript ее не ест:
alert($('ns\\:text').attr('value') );
(как найдено на этой теме)
$('ns\\\:text').attr('value')
кажется ответом, но некоторые люди упомянули, что некоторые браузеры могут его не поддерживать... но я не знаю об этом, поскольку это библиотека jquery, если jquery не реализовал ее, возможно, это может быть так:
поддерживается и тестируется: ie8, FF 3.6, chrome 3.0 я не тестировал его в других браузерах, потому что у меня их нет, но если у кого-то есть ответ, если он работает в других браузерах, то добавьте комментарий ниже...
$. ( '[NodeName = нс: текст]') Attr ( 'значение');
Пример:
$('[nodeName=geo:lat]').attr('value');
$('[nodeName=geo:lat]').val();