特定のタグのすべてのHTML要素の特定の属性をjavascriptまたはphp(または他のもの)で変更する方法はありますか?たとえば、javacriptを使用して、ページのすべての "< >"要素を "target = '_ blank'"属性に変更したいとします。助言がありますか?すべてのタグのHTML要素の属性を変更しますか?
答えて
を(a)の上の要素をページ:
$(function() {
$('a').attr('target', '_blank');
});
上記のスクリプトの前に、HTMLのhead要素にjQueryのコピーを含める必要があります。
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('a').attr('target', '_blank');
});
</script>
</head>
jqueryコード自体が先頭にあるか、「"? – Proffesor
@ user1046024:これだけのJavaScriptが必要な場合は、jQueryを読み込まないでください。 – RightSaidFred
@ user1046024:どちらも頭の中にある必要はありませんが、jQueryのスクリプト要素(最初の要素)はもう一方の要素の前に来る必要があります。共通のコンセンサスはDennisのソリューションを使用するように思われますが、彼はすべてのリンクに適切に適用するためにコードを配置する場所を指定しません。 – tjbp
getElementsByTagName
すべてのアンカーをつかむし、その後、あなたがそれらを反復処理することができます:だからあなたhead要素は次のようになります
var list = document.getElementsByTagName("a"), len = list.length;
while(len--) {
list[len].target = "_blank";
}
JSFiddle:ここhttp://jsfiddle.net/zwbCS/
jqueryなどを含むことを示唆していないために、簡単には簡単に実行できるタスクはありません。 –
'document.getElementsByTagName(" a ")'は 'document.links'で置き換えることができます。これはやや効率的です(' target'は非リンクアンカーに意味がありません)。 –
@RobW私の答えは、 "特定のタグのすべてのHTML要素の特定の属性"を変更するより一般的な考え方に向けられていました。 – Dennis
は、jQueryの例であります新しいウィンドウで開く場合は、外部リンクのみを開きます。
var myHosts = [ // just in case you are using full abs paths
'www.mydomain.com'
];
jQuery(function()
{
jQuery('a[href^="http"]').each(function()
{
if (jQuery.inArray(this.hostname, myHosts) == -1 && this.href.indexOf(location.hostname) == -1)
jQuery(this).attr('target','_blank');
});
});
IMHOがあなたのやり方を強制するのは良い考えではありません。最新のブラウザでは、新しいウィンドウ/タブでリンクを開くためのショートカットキーを使いやすくなっています。だから、たとえ彼が外部リンクをクリックしてあなたのサイトを離れるとしても、訪問者があなたのサイトを非常に便利なものにしていれば、彼はあなたに戻ってきます。
サイトの外部リンクについて訪問者にヒントを与えたい場合は、(たとえばCSSなどで)リンクにアイコンを入れて、上記のスクリプトを修正して使用して、目的のCSSを追加することをお勧めしますクラスをそのリンクに追加します。同様に:
jQuery(function()
{
jQuery('a[href^="http"]').each(function()
{
if (jQuery.inArray(this.hostname, myHosts) == -1 && this.href.indexOf(location.hostname) == -1)
jQuery(this).addClass('external_link ');
});
});
CSS:あなたは、これまで
.external_link { padding-right: 20px; background: url(path/to/the/image) no-repeat right top; }
- 1. Railsはlink_toのhtml要素属性を変更します
- 2. HTML要素の属性はタグの一部ですか?
- 3. Mateial-UIライブラリの要素のHTML属性を変更する
- 4. すべてのHTML要素から属性タイトルを削除します。
- 5. jQuery要素内の要素の属性を変更しています
- 6. HTML要素とそのすべての子要素からすべての属性を削除する
- 7. AngularJs要素のすべての属性を選択します。
- 8. 要素内のxslt属性の変更
- 9. JavaScript要素を含むHTML要素のinnerHTMLの一部のCSS属性を変更します。
- 10. HTMLタグの属性属性をSublime Textと似ています
- 11. gwt/gxtプロジェクトのhtml bodyタグ属性を変更するには
- 12. すべてのHTMLタグに番号属性を追加する
- 13. YQL HTML要素の属性が失われていますか?
- 14. html要素の "value"属性の値を変更するjQuery関数
- 15. 内部のカスタム要素内から属性を変更する
- 16. HTML要素のすべてのデータ属性の順番を取得
- 17. html要素にhtml属性を設定できますか?
- 18. HTML要素のクラス属性の問題
- 19. JavaScriptでHTMLオブジェクト要素のデータ属性値を変更する方法
- 20. Sortableリストからすべての要素属性を取得
- 21. Pythonを使用してxmlの要素からすべての子タグと属性を読み取る方法
- 22. 属性を失うことなく要素タグを変更する方法
- 23. 要素の名前属性のCSSを変更する方法
- 24. Angular 2の要素の属性を変更する方法
- 25. 要素のすべての設定属性を出力する
- 26. 特定の名前の属性を持つ要素の値の属性を変更します。
- 27. XSLT help - 要素への属性の変換と要素の名前の変更
- 28. Htmlタグ属性インデントのベストプラクティス?
- 29. javascript変数のCSS属性をjqueryのhtml要素に追加
- 30. Play Framework Twirlテンプレートhtml要素の属性
何をしようとしたのですか? – Jpsy
私は何も試していません。私はどこから始めるべきかわかりません。 – Proffesor
@JiminP:絶対ナンセンス。 – RightSaidFred