jQuery selecting a selector with namespaced element

一世执手 提交于 2019-12-17 16:17:21

问题


How would I select the following in jQuery?

<ns:text value="my value" />

I have tried the snippets below, but to no avail. Is this possible?

var x= $('ns:text').attr('value'); 
return x;

var x= $('text').attr('value'); 
return x;

回答1:


You're looking for:

var x= $('ns\\:text').attr('value'); 
return x;

Ref:

  • http://docs.jquery.com/Selectors#Special_characters_in_selectors



回答2:


Take a look at JQuery, XML and namespaces.

It seems that this should work:

var x = $("ns\\:text").attr("value");



回答3:


I tried the "[nodeName=gd:when]" version and it worked at first - but then when I upgraded jQuery from 1.4.3 to 1.5.2 it broke. Not sure which version inbetween is the problem.

Solution was to use "gd\:when" approach - but it didn't work in Google Chrome - so I finally came up with a way that works in all the browsers I tried:

// 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" );
}

You can then use the prefix for any more namespaced elements.

See http://www.kajabity.com/index.php/2011/05/handling-xml-elements-with-namespaces-in-jquery/.




回答4:


Use a backslash, which itself should be escaped so JavaScript doesn't eat it:

   alert($('ns\\:text').attr('value') );

(as found on this thread)




回答5:


$('ns\\\:text').attr('value')

seems to be the answer but some people have mentioned some browsers may not support it... but i don't know about that as this is a jquery library unless jquery has not implemented it then maybe that could be the case:

supported and tested on: ie8, FF 3.6, chrome 3.0 i have not tested it on other browsers because i don't have them but if anyone has the answer if it works on other browsers then please add on the comment below...




回答6:


Works in webkit and alle the other Browsers too


$('[nodeName=ns:text]').attr('value');

Example:

$('[nodeName=geo:lat]').attr('value');
$('[nodeName=geo:lat]').val();


来源:https://stackoverflow.com/questions/2047466/jquery-selecting-a-selector-with-namespaced-element

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!