2012-10-26 51 views
2

如果使用data(),如何在&之间获取值?在jQuery中使用.data()时获取html标记之间的值

示例代码:

<span data-name="username"> James</span> 

我可以用得到的数据名称的值:$("span:visible").data("name"); // OUTPUT : username ,但我想要得到的值“詹姆斯”,我想补充的.text()& .VAL( )在最后,但它不工作。

谢谢。 杰克

回答

1

您可以使用Attribute Equals选择的元素匹配,并且text()方法来获取它的内部文本内容:

var spanText = $("span[data-name='username']:visible").text(); 

如果James前的空格字符是显著的,你不希望它存在于你取的价值,你可以申请$.trim()

var trimmedSpanText = $.trim($("span[data-name='username']:visible").text()); 
0

要获得“詹姆斯”,使用

$('span:visible[data-name="username"]').text().trim(); 
+0

辉煌!!!!!! – Jack

0

的其他方式做到这一点:

$("span:visible").html() 
0

,如果你使用它的工作:

$('span').text(); 

当您使用此

$("span:visible").data("name") 

控制得到了至data(),所以javascript不能理解元素是从哪里提取text()的。

0
<span id="spanTestData" data-name="username"> James</span> 
$(document).ready(function() { 
    $.trim($('#spanTestData').text()); 
}); 

// ================================或者======== ====== //

<span data-name="username"> James</span> 

$(document).ready(function() { 
    $.trim($('span[data-name]:first').text()); 
}); 

// ================================或============== //

Demo

<span data-name="username"> James</span> 

<span id="spanTestData" data-name="username"> James 2</span> 

<h1 style="font-size:larger; font-weight:bolder;"></h1> 


$(document).ready(function() { 
     $('h1').text($.trim($('span[data-name]:first').text()) + ' ||| ' + $.trim($('#spanTestData').text())); 
    }); 
+0

你应该使用$(document).ready(function(){});这是用来在页面加载后激发jquery – Thulasiram

+0

如果 html标记是多个,它会粘合与选择器匹配的第一个html标记。所以使用属性id,你可以得到这个值。 – Thulasiram

+0

James $('#spanTestData')。data('username'); – Thulasiram