私はjqueryでuserscriptを作ろうとしています。私はカーソルの下の要素からカーソルの下のテキストを取得したい。問題は、私が書いたスクリプトが要素に子がある場合連結された子要素を返すjQueryの.text()を使用していることです。どのようにテキストを取得する任意のアイデア私はコンテナのをクリックしますか?カーソルの下のテキストを取得する方法は?
(私はebay.comでそれを試してみましたが、サイトは複雑で原因)
// ==UserScript==
// @name Selector
// @namespace http://userstyles.org
// @description none
// @include http://*.*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==
var $;
// Add jQuery
(function(){
if (typeof unsafeWindow.jQuery == 'undefined') {
var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement,
GM_JQ = document.createElement('script');
GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
GM_JQ.type = 'text/javascript';
GM_JQ.async = true;
GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
}
GM_wait();
})();
// Check if jQuery's loaded
function GM_wait() {
if (typeof unsafeWindow.jQuery == 'undefined') {
window.setTimeout(GM_wait, 100);
} else {
$ = unsafeWindow.jQuery.noConflict(true);
letsJQuery();
}
}
function letsJQuery() {
//alert("Loaded jQuery" + $().jquery); // check jQuery version
$("*:not(html, head, body)").hover(function() {
$(this).css("border", "1px dotted blue");
},
function() {
$(this).css("border", "none");
}).click(function() {
var s = $(this).text();
if (s) alert(s);
return false;
});
}
問題は、すべての子テキストが連結されてしまうことです。 – blez
@ blez、任意の要素のテキストは、必然的にその子のテキストを含む。 – eyelidlessness
@ blez:私の答えは更新されました。 – jAndy