我想从字符串中获取值117。但未能。。。
当我执行以下操作时,
$(this)
我得到像这样的"字符串"
"[Node: <span class='nodeId'>117</span>] <br>bla bla (bla/6)<br>Value: n.a."
进一步推导如下,
$(this).filter('.nodeId').html()
我出错了。。。
Uncaught Error: Syntax error, unrecognized expression: [Node: <span class='nodeId'>117</span>] <br>bla bla (bla/6)<br>Value: n.a.
请求的代码段:
var onDeviceMarkerClick = function() {
var currentNodeIdVal = null;
var marker = this;
var markerLat = marker.getPosition().lat();
var markerLng = marker.getPosition().lng();
var checkStreetView = new google.maps.LatLng(markerLat,markerLng);
var svClient = new google.maps.StreetViewService();
var checkaround = 50;
svClient.getPanoramaByLocation(checkStreetView, checkaround, function (nearest) {
if (nearest !== null){
var nodeIdString = marker.title;
var checkThisVal = $(nodeIdString).filter('.nodeId').html();
console.log(checkThisVal); // Here I got the error
//More to go
有人吗?
如果jQuery的HTML格式不正确(例如没有以<>
元素开头),则需要首先将其包装(例如在伪div
元素中)
JSFiddle:http://jsfiddle.net/TrueBlueAussie/vme0us9s/1/
var nodeIdString = marker.title;
// Create a new DIV and insert the content
var $div = $('<div>').html(nodeIdString);
var checkThisVal = $div.find('.nodeId').text();
alert(checkThisVal); // Alerts 117
您可以通过实现
var value = $('.nodeId').text();
编辑:您可以通过以下方式完成:
var string = "<div>blah <span class='wew'>blah</span> sdf</div>";
console.log($(string).find('.wew').text());
请注意,字符串应该是一个有效的html元素。